enhance ntd switcher for callback fn, and default value