* refactor of yield_complex method