internal messaging funcation