cleaned up the async a bit