service-management: use virtual functions