separating into service. work in progress