(edited, do some more tests)