refactor to allow knockout binding shielding for widgets