Add library + tests