initial pass at messaging protocol