Lab 3 functional, needs testing