Refactor and clean up models

GitHub #50