refactor message again to support correlated messages