refactoring to sandi metz