added two classes, and seven methods