Prototype mechanics

* Merge prototype into master