ADDED A NEW CLASS AND SOME METHODS AND CONSTRUCTORS