you cannot "return" because of asynchronity