redo the fix of moving caller state handling to separate thread