Protocol implemented. All tests passing