added more documentation.