The logic should be in a service object.