moves logic to service object