Finished assignment1