When messages are sent to a communication instance if the binding isn't exactly right (ex. the package is different) the message is received, but not routed. This should be changed to throw an error as well as properly support different packages for implementation traits (rely on the shared trait's package).