this the the lab2 code at github