initial refactoring review