hue difference calculation
with-temp-world uses with-redefs now instead of dynamic rebinding
multimethod for state transitions for vehicles