document various functions and types