make classes public but prevent instantiation
initial knowledge contains only choices but no entities
major reimplementation; new mapping from DL to IF