more refactoring
back to the roots