Factory is now a Abstract class
adding exchange method to components classes