Major refactoring
Error handling
Whoops