morer refactoring
more refactoring