Use serial queue instead of mutex - no need for reentrancy