Finished assignment2