Completedabstract factory