refactored shy widgets