Final Version of the Assignment