refactoring next iteration