really need to work on performance. See MessageSending stress tests