assignment alg