Moved the various factories to their own package