add a very simple async implementation