new complex method