refactoring/clean up