use deferred binding for all factories