Implementation of compatibility layer for entities

Also creates the infrastructure needed to do the same for lower level objects.