very basic support for masking the UI while you do synchronous changes