Needs a class comment and comments for all the public methods. Each implementation should have a class comment too.