Full commented and javadoc'd

Tried to clearly show what I did vs what Simon had done