The names of the above classes can be improved.