refactorizado y comentado el codigo del paquete comunication