Rather than create two new List objects to wrap the new and old values of every single-valued property that is changed, what if the `currentValues` and `oldValues` fields in the `JcrPropertyEvent` class are of type `Object`. If single valued, the field would contain the value; if multie-valued, the field would contain a list. It would require a little more checking in the `JcrPropertyEvent` methods, but it could also be used in place of the `isMultiValue` and `wasMultiValue` fields. Since so many of these objects are created, we have to be aware of how much garbage we're creating. It would also simplify the constructor signature, since the boolean parameters are no longer required.