IMPORTANT: changed UserActionManager from unique_ptr thread_local theInstance to raw pointer. Was experiencing strange error about freeing memory that was not allocated when the unique_ptr default_delete was invoked. Destruction is not important in this case, even though I think it is ugly not to delete the instance. Note that this means the destructor for UserActionManager can't do anything useful. Anyway simple example is COMPLETE and runs without crashing. I need to verify that the data is written successfully. Then I will merge.