implementado metodos principales