should build the right kind of factory