some ideas for an async API