reworked the RoutedMessage API.