more refactoring and introducing mappers and client specifications