refactoring and improvements