non-blocking through await