Controller - View approach

Closes #2 
Closes #10
Every function should be documented, but I'm really going to insist on some right here.