I like this mutable keyword. Only the cache is updated for better performance next time round, so perfect use case I think. I'm happy to do this, but how does it sit with OF convention? Does it work on all OF compilers? Also, the bHasChanged flag will be inevitably cleared (because the cache is updated), could that cause complications?