the service logic is correct, I suppose