refactor
it works
not for outstanding
dynamic message chain