Refactorizado, incluidos algunos metodos nuevos