assignment3 except BM