diff --git a/assets/app.css b/assets/app.css
index 9b14b1237fb298719d662c2ddb0e40dc9998a2a1..217689caec6a601f1d127f33ac4080319054f69b 100755
--- a/assets/app.css
+++ b/assets/app.css
@@ -77,4 +77,8 @@ button:focus{
   border: 1px solid rgba(68, 71, 99,.24);
   color: rgb(68, 71, 99);
   background-color: rgba(68, 71, 99, 0.116);
+}
+
+.Select-control{
+  width: 100% !important;
 }
\ No newline at end of file
diff --git a/src/Modules/General/callbacks.py b/src/Modules/General/callbacks.py
index dbc14658484d51f8d5137779ce964522d2ed6a04..0a654270a6e906cb5f2114b3721c39e44c46ed3e 100644
--- a/src/Modules/General/callbacks.py
+++ b/src/Modules/General/callbacks.py
@@ -63,6 +63,7 @@ class callbacks():
                         
                         graphs = {l:[] for l in generalLayerFilter}
                         annotations = []
+
                         for layer in generalLayerFilter:
                             i = 0
                             for f in generalGraphFilter:
@@ -70,7 +71,7 @@ class callbacks():
                                     if(layer not in super.SpikeGraphY):
                                         super.SpikeGraphY[layer] = deque(maxlen=100)
                                         super.MaxSpike[layer] = 0
-                                    if data != None and layer in data[i]:
+                                    if data[i] != None and layer in data[i]:
                                         super.SpikeGraphY[layer].append(data[i][layer]["spikes"])
                                     else:
                                         super.SpikeGraphY[layer].append(0)
@@ -86,7 +87,7 @@ class callbacks():
                                             fill='tozeroy' if len(
                                                 generalGraphFilter) == 1 else 'none',
                                             line=dict(color="rgb(31, 119, 180)"),
-                                            name='Spikes',
+                                            name='Spikes ['+layer+']',
                                             mode='lines+markers',
                                             text=list(super.xAxisLabel),
                                             customdata=list(super.SpikeGraphY[layer]),
@@ -97,7 +98,7 @@ class callbacks():
                                     if(layer not in super.SynapseGraphY):
                                         super.SynapseGraphY[layer] = deque(maxlen=100)
                                         super.MaxSynapse[layer] = 0
-                                    if data != None and layer in data[i]:
+                                    if data[i] != None and layer in data[i]:
                                         super.SynapseGraphY[layer].append(data[i][layer]["synapseUpdate"])
                                     else:
                                         super.SynapseGraphY[layer].append(0)
@@ -111,7 +112,7 @@ class callbacks():
                                             fill='tozeroy' if len(
                                                 generalGraphFilter) == 1 else 'none',
                                             line=dict(color="rgb(255, 127, 14)"),
-                                            name='Synapses update',
+                                            name='Synapses activity ['+layer+']',
                                             mode='lines+markers',
                                             text=list(super.xAxisLabel),
                                             customdata=list(super.SynapseGraphY[layer]),
@@ -120,7 +121,7 @@ class callbacks():
                                     if(layer not in super.PotentialGraphY):
                                         super.PotentialGraphY[layer] = deque(maxlen=100)
                                         super.MaxPotential[layer] = 0
-                                    if data != None and layer in data[i]:
+                                    if data[i] != None and layer in data[i]:
                                         super.PotentialGraphY[layer].append(data[i][layer]["potential"])
                                     else:
                                         super.PotentialGraphY[layer].append(0)
@@ -135,85 +136,74 @@ class callbacks():
                                             fill='tozeroy' if len(
                                                 generalGraphFilter) == 1 else 'none',
                                             line=dict(color="rgb(44, 160, 44)"),
-                                            name="Neuron's potential update",
+                                            name='Neuron\'s potential ['+layer+']',
                                             mode='lines+markers',
                                             text=list(super.xAxisLabel),
                                             customdata=list(super.PotentialGraphY[layer]),
                                             hovertemplate="%{text} <br> <b>%{customdata}</b> <br> <b>Max</b> "+str(super.MaxPotential[layer])))
                                 i += 1
 
-                        if(g.Labels != None):
+                        if(len(graphs) != 0):
 
-                            if(data[-1] != None):
-                                super.LossGraphY.append(round(data[-1], 2))
-                            else:
-                                super.LossGraphY.append(None)
+                            if(g.Labels != None):
 
-                            fig = make_subplots(rows=1+(len(graphs)*1), cols=1, shared_xaxes=True, vertical_spacing=0.05, specs=
-                            [[{'rowspan': 1}]] +[[{'rowspan': 1}] for l in graphs])
+                                if(data[-1] != None):
+                                    super.LossGraphY.append(round(data[-1], 2))
+                                else:
+                                    super.LossGraphY.append(None)
+
+                                fig = make_subplots(rows=1+(len(graphs)*1), cols=1, shared_xaxes=True, vertical_spacing=0.05, specs=
+                                [[{'rowspan': 1}]] +[[{'rowspan': 1}] for l in graphs])
 
-                            fig.add_trace(
-                                go.Scatter(x=list(super.InfoGraphX), y=list(super.LossGraphY), mode='lines',
-                                           text=[
-                                    str(t)+' %' for t in list(super.LossGraphY)],
-                                    hoverinfo='text',
-                                    connectgaps=False,
-                                    xaxis='x2',
-                                    line={"color": "#dc3545",
-                                          "dash": "dot",
-                                          "width": 2},
-                                    name='Loss'
-                                ),
-                                row=1, col=1
-                            )
-
-                            for key,graph in graphs.items:
                                 fig.add_trace(
-                                    graph, row=3, col=1)
+                                    go.Scatter(x=list(super.InfoGraphX), y=list(super.LossGraphY), mode='lines',
+                                            text=[
+                                        str(t)+' %' for t in list(super.LossGraphY)],
+                                        hoverinfo='text',
+                                        connectgaps=False,
+                                        xaxis='x2',
+                                        line={"color": "#dc3545",
+                                            "dash": "dot",
+                                            "width": 2},
+                                        name='Loss'
+                                    ),
+                                    row=1, col=1
+                                )
+
+                                for key,graph in graphs.items:
+                                    fig.add_trace(
+                                        graph, row=3, col=1)
 
-                            fig['layout'].update(
-                            xaxis2=dict(
-                                title='Step',
-                                autorange=True,
-                                range=[min(super.InfoGraphX) if super.InfoGraphX else 0, max(
-                                    super.InfoGraphX) if super.InfoGraphX else 0],
-                                #rangeslider={'visible': True,'autorange': True},
-                                # showticklabels=False,
-                                tickvals=list(super.InfoGraphX),
-                            ),
-                            yaxis1=dict(
-                                range=[0, 105]
-                            ),
-                            showlegend=True,
-                            uirevision='no reset of zoom',
-                            margin={'l': 0, 'r': 0, 't': 30, 'b': 25},
-                            annotations=annotations)
-                        else:
-                            fig = make_subplots(
-                                rows=len(graphs), cols=1, shared_xaxes=True, vertical_spacing=0.05)
+                            else:
+                                fig = make_subplots(
+                                    rows=len(graphs), cols=1, shared_xaxes=True,vertical_spacing=0.05)
 
-                            l = 1
-                            for key,graphL in graphs.items():
-                                for graph in graphL:
-                                    fig.add_trace(
-                                        graph, row=l, col=1)
-                                l +=1
+                                l = 1
+                                for key,graphL in graphs.items():
+                                    for graph in graphL:
+                                        fig.add_trace(
+                                            graph, row=l, col=1)
+                                    l +=1
+
+                            fig.update_xaxes(title_text="Step", row=len(graphs), col=1)
 
                             fig['layout'].update(
-                            # TODO: change axis when there is no Loss
-                            xaxis=dict(
-                                title='Step',
-                                autorange=True,
-                                range=[min(super.InfoGraphX) if super.InfoGraphX else 0, max(
-                                    super.InfoGraphX) if super.InfoGraphX else 0],
-                                #rangeslider={'visible': True,'autorange': True},
-                                # showticklabels=False,
-                                tickvals=list(super.InfoGraphX)),
-                            yaxis=dict(range=[0, 105]),
-                            showlegend=True,
-                            uirevision='no reset of zoom',
-                            margin={'l': 0, 'r': 0, 't': 30, 'b': 25},
-                            annotations=annotations)
+                                yaxis=dict(range=[0, 105]),
+                                showlegend=True,
+                                uirevision='no reset of zoom',
+                                margin={'l': 0, 'r': 0, 't': 30, 'b': 25},
+                                annotations=annotations)
+
+                        else:
+                            
+                            fig = make_subplots(rows=1, cols=1, shared_xaxes=True, vertical_spacing=0.05, specs=[[{'rowspan': 1}]])
+                            fig.add_trace(
+                                    go.Scatter(x=list(), y=list(), mode='lines',
+                                        line={"color": "#dc3545",
+                                            "dash": "dot",
+                                            "width": 2},
+                                    ),row=1, col=1)
+                        
                         return fig
 
                     except Exception as e:
diff --git a/src/Modules/General/layout.py b/src/Modules/General/layout.py
index c18e30197ea55761092b11e0df9d41d788709277..abb951fc384b34ad84277e15287e34046e1dcb22 100644
--- a/src/Modules/General/layout.py
+++ b/src/Modules/General/layout.py
@@ -68,6 +68,7 @@ class layout():
         self.SpikeGraphY.clear()
         self.LossGraphY.clear()
         self.SynapseGraphY.clear()
+        self.PotentialGraphY.clear()
         self.xAxisLabel.clear()
         self.Label.clear()
         self.MaxPotential = dict()
@@ -133,18 +134,18 @@ class layout():
                                             # Graphs filter 
                                             dcc.Dropdown(
                                                 id='GeneralGraphFilter',
-                                                options=[{'label': "Spikes", 'value': "Spikes"}, {'label': "Synapses update", 'value': "Synapses"}, {
-                                                    'label': "Neurons potential update", 'value': "Potentials"}],
+                                                options=[{'label': "Spikes", 'value': "Spikes"}, {'label': "Synapses activity", 'value': "Synapses"}, {
+                                                    'label': "Neurons potential", 'value': "Potentials"}],
                                                 value=['Spikes'],
                                                 multi=True,
-                                                style={'width': '50%', "marginLeft": "10px", "textAlign": "start"}),
+                                                style={"minWidth":"10%","marginLeft": "10px", "textAlign": "start"}),
                                             # Layers filter 
                                             dcc.Dropdown(
                                                 id='GeneralLayerFilter',
                                                 options=[{'label': str(i), 'value': str(i)} for i in (i for i in g.Layer_Neuron if i != "Input")],
                                                 value=[str(i) for i in (i for i in g.Layer_Neuron if i != "Input")],
                                                 multi=True,
-                                                style={'width': '50%', "marginLeft": "5px", "textAlign": "start"})], className="row", style={"paddingLeft": "20px"})
+                                                style={"minWidth":"10%","marginLeft": "15px", "textAlign": "start"})], className="row", style={"paddingLeft": "20px",'width': '100%'})
                                         ], className="col-12")
                                     ], className="row"),
                                     html.Div([dcc.Graph(id='general-graph', animate=False, config={"displaylogo": False})])], className="col-lg-9 col-sm-12 col-xs-12" if(g.Labels != None) else "col-lg-12 col-sm-12 col-xs-12"),