problem set 5... test driven development