widget adaptation