move callbacks to UI thread
Use Strings as messages instead of byte[]s