pool: make some functions asynchronous
chain: fixes