arguments are already checked in the on method