refactored decoder