document the rest of the functions