Adds lots more documentation