added a onceUsingId method to Guard