WIP: abtracting to service