Implemented protocol
Added protocol implementation