move different Classes to separate factories