all the code we need before testing... hopefully