modified decoder