- Implemented most of the prototype. Testing is left.