more documentation on functionality