Assignment1 final Version