Converted to Abstract factories.