Using a queue for AppMessage because it was failing with APP_MSG_BUSY sometimes. Seems to work fine now.