don't make core msg functions more complex without performance evaluation.