Added more documentation and methods