Lab3 codes