Rewrite the entire library to use callbacks rather than Promises. Also rewrites test suite.