Added javadocs and moved some classes to a more appropriate package