message framework