derive from service and extend args