start implementing message protocol