changes necessary to support arbitrary entities