added abstract factory and subclasses for palette factory