I know this is already merged, but isn't this wrong? It removes the ability to set a position to `nil`.

Why not always fire will change, or fire it when the instance variable and passed variable differ?