Adds much more documentation