add widget builder functionality