Alterado alguns métodos e adicionado uma exception