main functionalities completed for mvp... going to throw in a couple tests
minor refactoring, primarily semicolons