added Algorithm 3 and 4