better way to undo activity stack, and implement db transactions so we can cancel any edited contacts