Implementada as 4 funções