imperative searn now working (albeit 2.5* slower), snapshotting in