move widgets to directives