lab4 full + lab5 skeleton