Implement async functions, done up to 1/2 of p. 32