Move overlay into widget. Fix some quirks