CanBeOccupied now able to recognize Unit that is subclass of the valid type