more refactoring
merge