Protocol implementation with passing tests

per #3