Rewritten target/action persistency to integrate cleanly with CoreObject and support diff