first commit with tests, they don't even work for now