Making everything a factory