improve string representation for abstract_factory