New API and tests

- New API takes an object and a callback instead of a list of params
- Also, new tests via lab + sinon