should this be in app/services?