refactoring y detalles de diseno