a little more work on message handling stuff