protocol implementation fixups
docs