The design and use of heterogeneous and homogeneous catalysts for the activation of small molecules