Refactor widget in their own files