assaad's method, to be finished