finished lab3 source