Big Commit

Rough prototype almost done.