filled out a good number of test cases