lecture3.1update(again)