use params pattern