and a bit more refactoring