diff --git a/src/draw.c b/src/draw.c
index 83194fee6c06f4a43439c12c1a31c5f9669ece57..2fc3b62b22a6b4b57133f76885576e5527dba5d0 100644
--- a/src/draw.c
+++ b/src/draw.c
@@ -37,14 +37,14 @@ void gfx_draw_circle(struct gfx_context_t *ctxt, coordinates c, uint32_t r, uint
     int y = r;
     int d = r - 1;
     while(y >= x){ 
-        gfx_putpixel(ctxt, c.row + x, c.column + y, color);
-        gfx_putpixel(ctxt, c.row + y, c.column + x, color);
-        gfx_putpixel(ctxt, c.row - x, c.column + y, color);
-        gfx_putpixel(ctxt, c.row - y, c.column + x, color);
-        gfx_putpixel(ctxt, c.row + x, c.column - y, color);
-        gfx_putpixel(ctxt, c.row + y, c.column - x, color);
-        gfx_putpixel(ctxt, c.row - x, c.column - y, color);
-        gfx_putpixel(ctxt, c.row - y, c.column - x, color);
+        gfx_putpixel(ctxt, c.column + x, c.row + y, color);
+        gfx_putpixel(ctxt, c.column + y, c.row + x, color);
+        gfx_putpixel(ctxt, c.column - x, c.row + y, color);
+        gfx_putpixel(ctxt, c.column - y, c.row + x, color);
+        gfx_putpixel(ctxt, c.column + x, c.row - y, color);
+        gfx_putpixel(ctxt, c.column + y, c.row - x, color);
+        gfx_putpixel(ctxt, c.column - x, c.row - y, color);
+        gfx_putpixel(ctxt, c.column - y, c.row - x, color);
         if(d >= 2*x){ 
             d = d-2*x-1;
             x++;
diff --git a/src/field.c b/src/field.c
index 05a9a9fbda981c29daa69f7101482ebe23c30da7..2c18ef902c8c55af83170336fb0ccafbaa603d57 100644
--- a/src/field.c
+++ b/src/field.c
@@ -57,22 +57,23 @@ bool draw_field_line(struct gfx_context_t *ctxt, charge_t *charges, int num_char
 void draw_charges(struct gfx_context_t *context, charge_t *charges, int num_charges, double x0, double x1, double y0, double y1) {
 	for (int i = 0; i < num_charges; i++)
 	{
-		coordinates_t charge_center = position_to_coordinates(CHARGE_R, CHARGE_R, x0, x1, y0, y1, charges[i].pos);
+		coordinates_t charge_center = position_to_coordinates(WID, HEI, x0, x1, y0, y1, charges[i].pos);
 		gfx_draw_circle(context, charge_center, CHARGE_R, COLOR_WHITE);
 
-		coordinates_t sign_dst;
+		coordinates_t sign_src = charge_center;
+		coordinates_t sign_dst = charge_center;
 		uint32_t sign_color = COLOR_RED;
 		if (charges[i].q > 0){
 			sign_color = COLOR_BLUE;
-			sign_dst.row = charge_center.row + SIGN_SIZE;
-			gfx_draw_line(context, charge_center, sign_dst, sign_color);
-			sign_dst.row = charge_center.row - SIGN_SIZE;
-			gfx_draw_line(context, charge_center, sign_dst, sign_color);
+			sign_src.row -= SIGN_SIZE;
+			sign_dst.row += SIGN_SIZE;
+			gfx_draw_line(context, sign_src, sign_dst, sign_color);
+			sign_src.row = charge_center.row;
+			sign_dst.row = charge_center.row;
 		}
 
-		sign_dst.column = charge_center.column + SIGN_SIZE;
-		gfx_draw_line(context, charge_center, sign_dst, sign_color);
-		sign_dst.column = charge_center.column - SIGN_SIZE;
-		gfx_draw_line(context, charge_center, sign_dst, sign_color);
+		sign_src.column -= SIGN_SIZE;
+		sign_dst.column += SIGN_SIZE;
+		gfx_draw_line(context, sign_src, sign_dst, sign_color);
 	}
 }
diff --git a/src/field.h b/src/field.h
index 267474ba80e1156c9ad61403a1da6b9ad4801173..982c4fd0c0a52f515853269943726a2063dac5f2 100644
--- a/src/field.h
+++ b/src/field.h
@@ -6,6 +6,10 @@
 #include "../utils/utils.h"
 #include <stdio.h>
 
+#define SIDE_LEN 1000
+#define WID SIDE_LEN
+#define HEI WID
+
 // Compute E*qP/norm(qP)
 // Return false if norm(qP) < eps
 bool compute_e(charge_t c, vec2 p, double eps, vec2 *e);
diff --git a/src/main.c b/src/main.c
index 92bf43403d1cee826d1f5be5fad54bf579cb23e2..0dfb863561b706dac83596f55943e8811238f6f6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -4,9 +4,6 @@
 #include "../utils/utils.h"
 #include "field.h"
 
-#define SIDE_LEN 1000
-#define WID SIDE_LEN
-#define HEI WID
 #define NCHARGES 2
 #define DX 0.0005
 #define NPOINTS 32
@@ -18,11 +15,14 @@ int main() {
 			{.q=0.25, .pos=vec2_create(0.75, 0.5)},
 	};
 	struct gfx_context_t *ctxt = gfx_create("elec", WID, HEI);
+	
 	draw_charges(ctxt, charges, NCHARGES, 0.0, 1.0, 0.0, 1.0);
-	for (int i = 0; i < NPOINTS; ++i) {
-		vec2 start = vec2_normalize(vec2_create(rand(), rand()));
-		draw_field_line(ctxt, charges, NCHARGES, DX, start, 0.0, 1.0, 0.0, 1.0);
-	}
+
+	//for (int i = 0; i < NPOINTS; ++i) {
+	//	vec2 start = vec2_normalize(vec2_create(rand(), rand()));
+	//	draw_field_line(ctxt, charges, NCHARGES, DX, start, 0.0, 1.0, 0.0, 1.0);
+	//}
+
 	while (gfx_keypressed() != SDLK_ESCAPE) gfx_present(ctxt);
 	gfx_destroy(ctxt);
 	return EXIT_SUCCESS;