To address the complexity of problems of interest we utilize a wide range of computational methods. We use standard program packages where appropriate, but also develop our own codes when computations beyond the limits of standard software are necessary. In particular, we suggest new theoretical approaches and methods, develop and justify new models for the description of complex molecular systems.