method, optional, vararg