Updated to allow for async