ensure that messages are processed sequentially!