master #25 separate classes for generic and compact data