add widget logic