updated decoder