Added several response methods to prevent us from using the messages object directly
Added some error checking just in case we ask for some matches with no messages in the queue
Change ProgrammingError message to be a little more descriptive