Refactored message hierarchy