Most of the functionality documented, still a few functions to go...