I have a quick question for you...

Why would you want to recalculate the value over and over again when something calls data()?

In other words - why not calculate it once when it changes and then just return the earlier calculated value from data()?