thrustign more refactorings