done with Q#3