add widget framework