protocol and message are both used by clients and servers, so move them to root dir