Very slow, must add some more tests soon.