Added JSON serialization method
Added Javadocs