soapy: work on the factory implementation