Commonize carrying and uncarrying flags into one method, so we don't
run the risk of messing it up.

Also add some documentation elsewhere in the class.