Not really liking th signature of this method; it is getting way to complex. Maybe we should go all in and use a Hash for all the parameters? @rngtng, @alloy what do you think?