rework service callbacks