refactorizado y testing