change API to avoid using JSQMessage objects. per discussion in #172