fix some core data related bugs in shot flow
implemented undo shot