2 step refactor