implemented guard_value