setting up and implementing tests