Multi-component reactions in heterocyclic chemistry