refactored widgets