a bit more refactoring the service...