Merge @abravalheri's commits, adding examples, basic messaging support and more tests.