Don't fail if key doesn't exist
Added more information about methods
Made bookmark optional
Added run_hooks