add tests and final ilp version