Implements all basic functionality

I'll style and attempt to push to Heroku in the near future.