support asynchronous getValue and change callbacks