more fleshing out: onZoneEnter/Leave should make more sense now