Port new tap libs
Port all the tests and fix some APIs
Use cargo instead of make