Added documentation and fixed it to be presentable