implemented to_string, this pretty much wraps up the async architecture for now