Added more documentation to the source