final version of assign 1