Functions call work both ways, using std::future for async execution