move functions around
Documentation.