add defer.all()