Refactor widget inhertance, fix demo modal not binding to widget