added &rest syntax