refactoring and cleanup