refine msg handling