restructuring with params.pp