parameterized decoder