significant refactoring after learning more about ember, will be able to move much faster now