making backend calls async (async blocking IO, not NIO)