integrate asynchronous execution in core.clj