Implement methods

Implement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methodsImplement methods