diff --git a/circuit/mkstepper/eagle.epf b/circuit/mkstepper/eagle.epf
index 8e793532199848b0232e688e2402b18609c28f73..cf506efe40709cf1f41ea34aace5d9b99300fc0e 100644
--- a/circuit/mkstepper/eagle.epf
+++ b/circuit/mkstepper/eagle.epf
@@ -86,7 +86,7 @@ Sheet="1"
 Type="Board Editor"
 Number=2
 File="mkstepper.brd"
-View="0.139397 10.9565 61.2024 56.4519"
+View="-11.172 -7.65215 62.1037 46.9423"
 WireWidths=" 0.0762 0.1016 0.127 0.15 0.2 0.2032 0.254 0.3048 0.4064 0.508 0.6096 0.8128 1.016 1.27 2.54 0.1524"
 PadDiameters=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0"
 PadDrills=" 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.65 0.7 0.75 0.8 0.85 0.9 1 0.6"
@@ -131,7 +131,7 @@ Type="Control Panel"
 Number=0
 
 [Desktop]
-Screen="3840 1080"
+Screen="1920 1080"
 Window="Win_1"
 Window="Win_2"
 Window="Win_3"
diff --git a/embedded/mkstepper-v011/mkstepper-v011/stepper.c b/embedded/mkstepper-v011/mkstepper-v011/stepper.c
index cacd18ecf70c3f0e12e013607dfcdfd35b9c783d..d08d45ff56a3464341536862a3c9da4af91adca5 100644
--- a/embedded/mkstepper-v011/mkstepper-v011/stepper.c
+++ b/embedded/mkstepper-v011/mkstepper-v011/stepper.c
@@ -20,11 +20,14 @@ stepper_t stepper_new(pin_t *step_pin, pin_t *dir_pin){
 }
 
 void stepper_reset(stepper_t *stepper){
-	
 	stepper->one_minute = 160980000; // calib'd # for timer ticks per minute (speeds, accels all in steps/min or steps/min/s)
 	stepper->speed_period = 0;
 	stepper->accel_period = 0;
 	
+	stepper->blockhead = 0;
+	stepper->blocktail = 0;
+	stepper->blocksize = BLOCKS_QUEUE_SIZE;
+	
 	stepper->speed = 0;
 	
 	stepper->last_step = 0;
diff --git a/embedded/mkstepper-v011/mkstepper-v011/stepper.h b/embedded/mkstepper-v011/mkstepper-v011/stepper.h
index e40f3e21693ab7cea34d41fe1b53c0e9954d8a71..683d9d6282711ffda5ec655d7a4823b037771ad3 100644
--- a/embedded/mkstepper-v011/mkstepper-v011/stepper.h
+++ b/embedded/mkstepper-v011/mkstepper-v011/stepper.h
@@ -12,10 +12,34 @@
 #include "sam.h"
 #include "pin.h"
 
+#define BLOCKS_QUEUE_SIZE 64
+
+// one movement
+typedef struct {
+	// from whence you came
+	uint8_t return_address[8]; // C quesion: how to do this properly with malloc() ? malloc() on embedded sys?
+	uint8_t return_address_length;
+	
+	// for what you do
+	uint8_t dir; // 0 or 1
+	uint32_t length; // in steps
+	uint32_t entry_speed;
+	uint32_t accel;
+	uint32_t position_accel_to;
+	uint32_t position_deccel_from;
+}block_t;
+
+// the stepper
 typedef struct {
 	pin_t *step_pin;
 	pin_t *dir_pin;
 	
+	// block ringbuffer
+	block_t block[BLOCKS_QUEUE_SIZE];
+	uint8_t blockhead;
+	uint8_t blocktail;
+	uint8_t blocksize;
+	
 	// tracking time periods
 	unsigned long one_minute;
 	unsigned long speed_period;
@@ -49,11 +73,7 @@ void stepper_update(stepper_t *stepper);
 
 /*
 step to-do
- - everything is broken and untested
- - refactor all for:
-  - dir-by-flag, assume no dir change per segment
-  - speed & periods unfuck
-  - update checks accel rate as well
+// block ringbuffer, pull and reply blocks - architecture for network functions, generally?
 */
 
 #endif /* STEPPER_H_ */
\ No newline at end of file