Added in some javadoc like comments for clarity!