add createWidget function