Async interface: initial implementation using JSON