factory service trait