since all of these are public classes, we'd better to add some comments to describe this class, what do you think?