add method can handle n arguments