with java convention code format and comments for classes