Fixed issue with callback firing when values haven't changed; Refactored recent changes