Factory Pattern
Factory.dia