refactoring & cleaning