complete lab3 with new tests