update with guard