Added Comments and Javadocs

Commented and documented much more throughly.