make tasks take dynamic params