this should just define a simple create() method that does base initializations. Have other 'builders' that can create objects with factories and then set values.