Unoptimized onchanged call with before after (need to be smarter about invoker use of before and after)