added variadic functions