Recomendo que p utilize os padrões strategy e factory. procure no refactor.guru. idealmente e visando a separação de código você faria uma fábrica pra cada classe e uma outra pra agrega ção. Porém precisa de verificar qual a melhor forma de faze-lo. O padrão strategy pode te ajudar com isso.
Não conheço muito de python mas verifique a possibilidade de utilizar polimorfismo.