I would put the method "setCreateOptions" and "getCreateOptions" in a "FactoryWithCreateOptionsInterface". (Perhabs you'll find a better name for it)