like model specs finished. refactored controller to move logic into model