use dissoc-in instead of dissoc when moving entities; also track state change correctly