move widget to widgets.py