Also, threading is clearer/easier with a signal than a mutable property. We might be able to support concurrent commands again if almost nothing in the interface is actually stateful.