accepts arguments