Document the function
Arrange the doxygen groups
Update the common track
Arrange the headers in a way that is best for ender

Also modify some enums to be consistent with its name
Fix the name of the exported function