adds code
adds tests