factory accepts entity only, registration control generates entity