diff --git a/LICENSE b/LICENSE
index 50d61c46ca5a9192d7574d99dd7025edce9c2f12..2271fbae3413198d84407e80b374c0b2292f918e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,4 @@
-MIT License
+Jake Read at the Center for Bits and Atoms
+Copyright (c) 2018 Massachusettes Institute of Technology
 
-Copyright (c) 2018 Jake Read
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+This work may be reproduced, modified, distributed, performed, and displayed for any purpose, but must acknowledge the automatakit project. Copyright is retained and must be preserved. The work is provided as is; no warranty is provided, and users accept all liability. 
\ No newline at end of file
diff --git a/README.md b/README.md
index b28bee18c3d04ee71063a678dd5cdceacb6a3f88..cc436a2d5bc62de7458a074e35c9f665f8b13517 100644
--- a/README.md
+++ b/README.md
@@ -2,141 +2,62 @@
 
 aka project 'consistent-sandbox' 
 
+![img software](doc/images/atkapi.png)
+![img hardware](doc/images/machine-with-atkapi.jpg)
 
-## Programming 
-  - need test of planner sequence
-   - next: close loop, bigger gcode terminal, test program 
-  - once we can plan gcode sequence, work towards more
-   - better hardware abstraction, i.e.
-   stepper.port = bridge.port('0,1')
-   stepper.port.onPacket = function(){ ... } 
-   callbacks ? 
-   - UI elements, i.e. demonstrating slider for individual axis movements, or just an arrow / keypad capture on mouseover thing 
-   - c improvements / dma etc, would be very cool, good for ruben, erik to send 
-    - dma not possible / not enough channels / not portable enough ... 
-    - still want to measure, though, and look through static / etc  ? 
-    - and *really* what we want / need is error correction / buffer overrun errors and port slowdowns on swside
-    - i.e. acks-in-between ? acks-per-packet ?
-    - is timing still important ? depends on network speed ! 
-    - go back to 0.5mbaud and test finally ? 
-
-   - bldc running, commutating, encoder 1st or do adc ? scope it out 
-
-## oy
-
- - pull out hand-written gcode for testing
- - rebase to commit prior to teardown, unless planner changed at all? 
-
- - documentation ... video ... fabclass, kerala (missing email?), oakland - should build a machine
- - controllers should work tho 
- - should very much remind them to find *people* to do the education
-
- - bridge has bug w/ two addresses only one is sent 
-
- - cooler demo 
-  - better gcode 
- - jog option ! 
-
- - should be able to loop easily 
- - want to show niche machines - this 'long tail mfg / automation' is a good pitch
-  - heating elements, flow control, material handling etc 
-  - closed cycle cardboard for cardboard machine 'high performance laser cutter feedstock' 
-  - coffee roaster
-  - etc 
-  - flow control is solenoids on breadboardboard 
-  - breadboardboard header solder on 'the rest' of circuitry solder on headers 
-
- - esperonto - / asicdesigner.net
-
- - go to pitch size for optical bench 
-
- - city / state budget flow assumes flow out, re-route flow into city thru education projects 
-  - economic benifit + economic benefit 
-  - fab academy - 'too long and expensive and inecessible to most users' 
-  - realistically what do people make in fab labs - what can we show ... what would bring people in? 
-
- - port flushing ? 
- - want a test / reset set 
-  - really, should be built into bridge (or hardware default objs)
-
- - read file ? default lines ? run it 
-
-- then you have this multiline gcode / start / stop sequencing issue 
- - and with it, scrolling around your messy program 
- - and this change ui / return double bounce ? 
-- want jog keys & speed commands w/ those buttons 
-- really want those LIGHTS 
-- really want to watch accelerometer
-- want to measure network speed
-- want to show motor torques coming back, set motor torques 
-
-## Majors to Address 
- - states / uis / etc - one off / one-at-a-time for updates 
-  - i.e. all f'n update calls are to single module-global state update
-  - ! 
- - states / getters / setters not applicable to sub-elements in an object within state
-  - i.e. array access 
- - consistent dereferencing ?
+[Automatakit](http://gitlab.cba.mit.edu/jakeread/automatakit) is a system architecture for robotics where machine controllers are extensible, and organized around the principle of event propagation: things happen because of other things that have happened beforehand. 
 
-## UI bugs /
- - reverse event lines ? .isLinked etc. .. 
+We aim to take an event graph architecture down through multiple layers of computing, routing event propagation also through a message passing network between multiple cpus each operating modular hardware endpoints.
 
-## Features we Want
- - UI classes
-  - buttons, w/ colors & reasonable std. events 
-  - multiline input w/ current-line highlighting, terminal-write-in ? 
-  - 3js 
- - prettier hw/sw representation
- - callbacks / duplex links ? handing over an object, basically 
- - reload-in-place
-  - title context menu 
- - w/ proper event classes, context clicks for inputs / outputs / state elements ?
- - for crashes etc, how can we re-start / kick serverside from the browser? some other daemon program ?
- - write in logger functions
-  - i.e. module.log('whatever') is wrapped at load into console.log() and sends serverside log message as well, with ID and name 
-  - this means writing module class that is extended 
+This project serves the developement environment / api we use to write and represent programs that are event graphs. 
 
-## remember
+![img moving](doc/images/mothermother.gif)
 
-you have friends
- - bro
- - sean
- - nathan 
-
-## links to things 
-
-http://designmodo.github.io/Flat-UI/
-
-http://workshop.chromeexperiments.com/examples/gui/#1--Basic-Usage 
-
-bootstrap, numeric.js ... 
-
-http://backbonejs.org/#Events
-
-## Desires
- - load / keep state 
- - run headless with view into 
- - collaborative program editing would be cool 
- - program save / load / edit ?
-
-## Model Consistency
-
-In Memory: array of modules
-
-Saved / interfaced with: json of this - so to load from this, we need paths and ids attached to each module on load time.
-
-To wrap / add heirarchy: this json object can be loaded the same as a program, given top level inputs and outputs, and made into another require()d module. 
-
-Modules are tiny programs, specifics (inputs, outputs, state) are read by system and wrapped into UI. UI has access to write into state, and connect events together.
-
-To wrap, we write a representation in api-type rep, with one connection. We output the 'text line' of a Terminal into the 'text input' input of a gcode parser, and see the output / state bubble through the UI.
-
- - to test, cleanup and write gcode obj
- - confirm state change comes down to server
- - confirm event bubbles through in server 
- - push event back to server ui ? dat.updatedisplay() ? 
-
-For extra points, we read in the connection also with an SVG layer - iterating through connections of the represented program.
+## Programming Notes
+- wake up planner sequence
+- once we can plan gcode sequence, work towards more
+ - better hardware abstraction, i.e.
+   stepper.port = bridge.port('0,1')
+   stepper.port.onPacket = function(){ ... } 
+   callbacks ? 
+ - UI elements, i.e. demonstrating slider for individual axis movements, or just an arrow / keypad capture on mouseover thing 
+
+## Deeply Missing
+- delete modules / module context menu 
+- load / save program 
+- decent page nav 
+- title bar / instructions 
+- heirarchy zoom 
+- states / uis / etc - one off / one-at-a-time for updates 
+ - i.e. all f'n update calls are to single module-global state update
+ - ! 
+- states / getters / setters not applicable to sub-elements in an object within state
+ - i.e. array access 
+- consistent dereferencing, type checking implementation?
+
+## Want
+- log() for logs-from-module tagged 
+
+## Demo Desires 
+- want to show immediacy of hardware: software representation
+- want to show physical reconfigurability and software reconfigurability
+ - i.e. mill, add rotary tool, pull normal vector from planner moves and route to r motor 
+- want to have UI elements
+ - button, terminal, 
+- live motor torque display, vector from accelerometer 
+
+## Network Desires
+- c improvements / dma etc, would be very cool
+- flow control probably desired ... what can we model with uart and implement with fpga?
+- proper speed tests
+- DMA not possible / not enough channels for router implementation / not portable enough ... 
+- lights displaying activity
+
+## Bugs
+- when bridge has two addresses only one sends
+ - add watch for identical addresses
+ - besides we want a different network representation 
+- cannot connect input to output w/o backwards bezier 
 
 # The RPI
 
diff --git a/doc/images/atkapi.png b/doc/images/atkapi.png
new file mode 100644
index 0000000000000000000000000000000000000000..f346c22aef99757c5e9c5279c79349aac32f67a9
Binary files /dev/null and b/doc/images/atkapi.png differ
diff --git a/doc/images/machine-with-atkapi.jpg b/doc/images/machine-with-atkapi.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..796e5567de760fae1eff20244226f81d20b00b3b
Binary files /dev/null and b/doc/images/machine-with-atkapi.jpg differ
diff --git a/doc/images/mothermother.gif b/doc/images/mothermother.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1ee3a36b83d4eb06a840b1623bba2f7686fc33b2
Binary files /dev/null and b/doc/images/mothermother.gif differ
diff --git a/server.js b/server.js
index ca493da98b8c6c183f6fb5dcd0afb250510ac530..4bcf4aad3669fd2a76aa57fb3b0e15c6a8d6808a 100644
--- a/server.js
+++ b/server.js
@@ -1,3 +1,15 @@
+//
+// server.js
+//
+// Jake Read at the Center for Bits and Atoms
+// (c) Massachusetts Institute of Technology 2018
+//
+// This work may be reproduced, modified, distributed, performed, and
+// displayed for any purpose, but must acknowledge the mods
+// project. Copyright is retained and must be preserved. The work is
+// provided as is; no warranty is provided, and users accept all
+// liability.
+
 /*
 
 SYSTEM REQUIRES