add widget and code learn