added Abstract Widget base