remove async, prevent the call stack from exceeding