bad implementation of message router