Contributions for this should not go to the lavarel project :)
Squash commit. Basic tests and services in place, need to finalize protocol next