more refacto