add tests
rough draft