You could do a nested match like this ```rust match command { 0x00E0 => Ok(Command::ClearScreen), 0x00EE => Ok(Command::Return), _ => match command >> 12 { // get the first nibble 1 => Ok(Command::Jump(self.val_u12)), 2 => Ok(Command::Call(self.val_u12)), 3 => Ok(Command::SkipIfRegVal(self.reg_x, self.val_u8)), _ => Err(()), }, } ```