document a bunch of functions