renamed func args to allow dynamic passing as kwargs