optimize decoder