implement first test (and some hacked code)
redo errything
add more tests