Better boxon/promise interop, more tests