lab2 - Final Version to submit