add factory UML