Implemented Toronov et al's methods