make widget type optional