assignment1&2&3