Implementación por componentes