Process messages in a separate greenthread.
Reorder steps. Just figuring out what makes sense here.
Don't use a separate variables storage, as it tends to mirror message
Allow usage of regular python logging handlers