move stuff around
add more tests