added requires arg