updated abstract factory class diagram