Major refactor to better define EntityKinds