add some tests. definitely needs some work