implement own ems