refactor model and presentation model