part6 done. bug exists.