added abstract level for entity