refactor Phil to mix in DimensionalEntity instead of rolling own
behavior
refactor Platform to mix in DimensionalEntity