add in a few more functions and a few more tests