added a test to confirm adding is tail recursive
implemented remove, though it aint pretty