refactoring models and controllers to sandi metz