The only thing keeping from being 5 stars is the lack of a way to tell when the other person has received the message. It probably isn't something you want to hear  but I like how WhatsApp handled the read receipts. Maybe implement something similar? Currently  I can't tell when they've received the message  only when they've read it.
March 27 2017