simplified code by moving a chunk of the functionality up into the superclass, MutableNumber. Still important that setValue turns the Number into the correct type however, so that method may not go up into the superclass