add java doc and rename class for better clarity of its usage