add callback capability, to avoid unload state