ei tony, check this out:
***Overclocking Your Pentium 4***
Target Audience: Newbies
Rev0: Original release
Rev0.1: Made it more "clear" for newbies
Rev1: Added MSI and Asus Bios Settings a.k.a. "What do I set in BIOS"
Rev2: Added "computational" portion a.k.a. "How far can I go"..
Rev2.1 Added some "Chipset" notes...
Rev2.2 Added info about IDE and PCI VC
Rev3.0 Added info about RAM and brands
Foreword: This article might be a little too daunting at first look, due to its length and wordy contents. But it's really not that "complex", I have decided to just add the relevant topics, and divided them in several "parts". I have listed them in a manner I think is best for newbies, later on, you can put more of the ideas into hands-on by checking on the template OC files, and on a more informational way, some basic mathematics involve in fiddling with the hardware. If you have any inputs or suggestions or corrections, feel free to post it here and let's help newbies to get a quick headstart on OCing (if they chose to do so

). Have fun...
*********************Part I - "Basic Overclocking"*********************
Introduction:
So, you like to overclock your Pentium 4 but don't know where to start and kept asking here and there, hither and yonder? Are you tired asking questions? Me too!!! =) So I made this litol artikol.
Pre-requisite:
(*) A good OCing CPU. Some example: Northwood B D1 stepping, Northwood C 2.4, 2.6, and 2.8 M0 stepping. Prescott 2.4A, 2.8E, 3.2E D0 Stepping. Celeron 2.0 D1 stepping and 2.4 D1 stepping. Use a tool such as CPU-Z to determine your stepping. To check your CPU,
http://processorfinder.intel.com/scripts/default.asp
(*) A decent DDR400 ram, TwinMos or KingMax SuperRAM is recommended.
(*) A good overclockable motherboard
(*) A very good PSU, preferably branded ones, with 20a+ rating on the 12v rail (and good 3v an 5v rail as well).
(*) Temperature monitoring software
(*) CPU-Z,
http://www.cpuid.com
(*) Benchmarks, i.e. PCMark2002/2004, 3DMark01/03, Prime95, MemStat, SiSoft, Etc.
(*) A clean, well lit, properly ventilated working area
(*) Money to burn in case you mess up
(*) Some drinks
(*) High Morale
Optional:
(*) Temperature monitoring device
Disclaimer:
Overclocking is dangerous to your rig, voids your warranty, and can harm you emotionally and physically. Do at your own risk.
Assumption:
(*) You are using a 200FSB capable motherboard
Elementary Preparation
01) Boot your system on stock, run benchmarks preferably for 1hr continous loops, and record idle, average, and peak temperature.
02) Set your heatsink fan controller to manual, and in full/maximum power.
03) Set your Memory from DDR400 to DDR333 (5:4). For non 200FSB motherboard and CPU, ensure you're running 1:1 or 5:4 and not 4:5. Again, use CPU-Z to check verify this.
04) Set your Memory Timing to SPD, or manually set it at 3-4-4-8.
05) Set your vCore to Auto
06) Set your vAGP/vNorthBridge to 1.7v
07) Set your vDimm to 2.75v
08) Disable Spread Spectrum
09) Lock your PCI and AGP (set PCI at 33Mhz and AGP at 66Mhz).
What the above steps does is eliminate any (elementary) possible bottleneck. For example, you are not going to hit memory limitation until around 260-270 FSB. And at that memory speed, your vDimm will be more than enough to provide juice.
Setting vCore on stock ensure you don't kill your CPU drastically (but that doesn't mean you can't kill your CPU).
Setting vAGP to a decent voltage ensure you will not be hampered by motherboard, but it does put your overall system in low to moderate risk.
Intermediate Preparation
10) Ensure you monitor the Northbridge heatsink temperature
11) Ensure you monitor the CPU temperature
12) Ensure you monitor the Heatsink temperature
13) Ensure you monitor the Case temperature
14) Optionally, monitor the Hard Disk temperature
Final Preparation
15) Bump your FSB to 210 (Northwood C, Prescott E), 143 (Northwood B, Prescott A), 110 (Any 400Mhz FSB CPU)
16) Pray
17) Boot, run benchmarks preferably for 1hr continous loops, and record idle, average, and peak temperature.
18) Compare the temperature with your stock settings. If temperature goes up 10c higher than stock, stop and get a better heatsink or review your case ventilation. Otherwise, go to next step.
Start up the conking
19) Bump the FSB 5 notches
20) Boot, run benchmarks preferably for 15mins continous loops, and record idle, average, and peak temperature.
21) Compare the temperature with your stock settings.
The general rule (not the absolute) is to:
(*) Keep your CPU as cool as possible, near ambient temperature.
(*) For Idle, maintain half the allowed Thermal Specs of your CPU. So if you have a 69c rated CPU, maintain at least 34c idle.
(*) For Load, maintain 10c higher than idle without hitting the maximum rated Thermal Spec OR
(*) For Load, keep it around 85% less than your CPU's rated temperature. For example, a 69c rated CPU can hit as high as 59c.
(*) Keep your Case temperature to 38c as much as possible.
(*) Keep your Northbridge below 45c as much as possible
22) If your OC is stable, go back to steps 19-21. If not, proceed to the next step.
23) You MAY have hit the wall. Which is it? It's up to you to find out and have fun.
(*) Maybe your CPU needs more voltage?
(*) Maybe your CPU needs to be cooler?
(*) Maybe it's the max your CPU can handle?
(*) Maybe your RAM hate lax timing or tight timings?
(*) Maybe your RAM needs more voltage?
(*) Maybe your RAM needs to be cooler?
(*) Maybe it's the max your RAM can handle?
(*) Maybe your Northbridge needs more voltage?
(*) Maybe your Northbridge needs to be cooler?
(*) Maybe it the max your Northbridge can handle?
(*) Maybe your PSU needs to replaced?
(*) Maybe you need to look into your SouthBridge?
(*) Maybe you need to tweak more?
_____________________________________________________________________________
******************************************************************
*****************Part II - "Asus and MSI Bios Settings"*****************
On to the actual Bios Settings (Excel File, save it):
a) Asus P4P800,
http://sleektech.nl/~dm/temp/bios/asus/asusbios.xls
b) MSI 865Neo2-P,
http://sleektech.nl/~dm/temp/bios/msi/msibios.xls
First things first: The Excel file settings will not guarantee a certified Overclock. The CPU, RAM, Motherboard are three primary components you need to have that can sustain and provide good system overclock results (actually, LUCK does play a major role too). I don't believe in just adjusting the multiplier, and front side bus, in fact, everytime I see such coaching, I almost want to say you're doing the wrong thing. Well, I guess it's just me, and they have a different approach. It might be that their style is better than mine.
But this is my approach. To be as systematic as possible, to get the best for my system. It takes patience to learn how to have a successful overclock. And it takes some skill to bring your system to utmost performance, but it takes little mistake to completely destroy your rig. If you just want to play with the FSB and Multiplier, the Excel file is useless. If you would like to experiment, play, record, and analyze your rig, then the Excel might be helpful. In fact, you can develop your own!
A little note on the Excel sheet:
(*) First Tab: Benching Tab
Description: This is either Asus xxxx or MSI xxx. Usually, motherboards of different model but same chipsets will have similar settings. So it might not reflect your actual motherboard, but most of the time, it will be similar to your rig. For example, a P4P800 and a P4P800 Deluxe.
Purpose: This is the "benching" tab, where you can record your settings to find the most stable and highest performing system.
(*) Second Tab: OC Computing and CPU to RAM ratio Tab
Description: It's a quick and simple way to compute the frequency for your CPU. For example, if you have a Celeron 2.4D, just edit C2 and C3 and place 18 and 133 respectively (i.e. C2=18, C3=133). Now, try changing the FSB and see the results change instantly to reflect your OC.
Purpose: This tab quickly shows the frequency of memory depending on the ratio (divider) used.
(*) Third Tab: OC Template Tab
Description: This is my own tested OC settings that are StressPrime (Prime95) stable for 6hrs to 8hrs. It doesn't show the maximum OCable settings for CPU and RAM. It is also a good "reference" and not the "general rule" for OCing your components.
Purpose: Provided to give you an idea of what maximum stable OC you can achieve with your particular chip.
Again, all the tabs can be customized to fit and reflect your own Bios settings.
_____________________________________________________________________________
******************************************************************
******************Part III - "Adbentyuring more"******************
Disclaimer:
I am NOT a mathematician, and the formula below maybe in error. I am POOR at mathematics, written/spoken English, and spelling. So have fun poking at the mistakes...
This post is based on my opinion alone, and does not encompass or embody the forum's general mindset or anybody else's.
You have been forewarned. Use (and read) at your own risk.
Note: Specifically geared for Intel Processors, but the general idea can be used on alternative processors.
Overclocking My Dummy
Scenario 0:
"All my friends have the new and baddest PC. I gotta have me one…"
I. Teh uncool abbreviations used:
(*) DDRfrq = DDR (not SDR) frequency. They come in many flavors. Usually, they come in DDR266(PC2100), DDR333(PC2700), DDR400(PC3200) flavors. Please, don't ever say or call DDR400 as PC400.
(*) QPB = Quad Pump Bus architecture for Intel. This means, you multiply the FSB by 4 to get the QPB value.
(*) FSBfrqC = for the lack of a better abbreviation, let's just call it FSBfrqC for CPU front side bus. This is the rated FSB of the CPU (or PSB=Processor System Bus).
(*) CPUmul = again, for the lack of a better abbreviation, I used that. It's just the CPU multiplier.
(*) CPUfrq = bah, I can't think of any good abbreviation, but what I mean here is the rated speed of your CPU.
(*) FSBfrqM = dang, I'm bad at coining abbreviations. But in any case, this is the motherboard Front Side Bus frequency.
II. Going Back to Basics: (Thank goodness, it’s not going back to school. I hate that slogan…or whatever you can call it.)
(*) DDR Basic: You can get the DDRfrq, assuming it’s on stock, by simply using the default multiplier of 2 (hence the term double data rate).
DDRfrq = FSBfrqM * 2
(*) QPB Basic: This is a constant value used on current generation P4, and it’s not changeable. Well, as far as I know of.
QPB = 4 (*Hint: for Intel P4 architecture)
(*) Formula: So, what are these. Nothing really special, except, they can be used on your OCing computation. This formula shows how you can get specific values. For example, to get the equivalent motherboard (or Bios setting) FSB, you divide the CPU’s rated FSB with QPB (or 4). The CPU multiplier is easy to get as well, just get the CPU’s frequency, and divide it by the rated motherboard FSB and there you have it. To get the rated speed of the CPU is quite straight forward: multiplier times the fsb!!!
FSBfrqM = FSBfrqC / QPB
CPUmul = CPUfrq / FSBfrqM
CPUfrq = FSBfrqM * CPUmul
So, why don’t we move on to some actual mind boggling (*I wish*) computation….
III. The elementary computation of the whole wide world:
Scenario 1:
"Oh, so I have this nice brand spanking new Intel Pentium 4 2.4C 800Mhz 512kb L2 cache Northwood. I also bought a kinky little dual channel kit ram, in the incarnation of generic DDR400. My killer ECS PF3 800FSB Photon Edition can smoke them all. Oh, this is so sweet, I am salivating already. I mean, what could be faster than my rig? Oh well, I guess only dorks and newbies will call this rig slow. Besides, my HIS MX440 is so sexy, girls at school will be begging to go out with me. I RULE!!!"
Given:
CPUfrq = 2400
FSBfrqM = 200 (800FSB / 4)
Unknown:
CPUmul = ?
Finding the multiplier is simple
CPUmul = 12 (2400 / 200)
IV. Moving on to the next step, killing the pulp, one big stroke at a time…
Scenario 2:
"Dang, my classmates smash my PC when it comes to benchmarks. Is there any way I can bring this to 3.0Ghz? I’ve read somewhere it’s possible, but who in the world could have such powers? Am I not that powerful? Am I not God? Am I not “teh 133t” good looking guy next door? The world must be imploding, it must be the end of the Earth as we know it."
Given:
Stock CPUfrq = 2400
Target CPUfrq = 3000
Stock FSBfrqM = 200 (800FSB / 4)
CPUmul = 12
Unknown:
Target FSBfrqM = ?
Using the formula above,
CPUfrq = FSBfrqM * CPUmul
Substituting the values:
3000 = FSBfrqM * 12
Interpolating (is this the correct term?)
FSBfrqM = 3000 / 12
FSBfrqM = 250
Validating…
3000 = 250 * 12
V. Death of an innocence, you just made my day…
Scenario 3:
"The Bios boot up screen shows 250x12=3000 Mhz… I AM GOD!!!!" *beep* *beep* *beep* "What the…….dang, won’t boot to Windows. Maybe I need to shout louder then press reset, 1..2..3…..I AM G.."*beep* *beep* *beep*."
Inspecting the original scenario, DM, yes, that’s the name of the bratty little 14yr old kid, did finally reach his goal of 3Ghz. But that wasn’t stable at all. We know what the potential problems are: Northbridge voltage, CPU voltage, AGP voltage, RAM voltage, or even RAM frequency and timing. Since we don’t want to delve ourselves into the dark arts of voltage modding, we’ll just suffice ourselves to adjusting not-so-dangerous settings. So, he’s got a DDR400, OCed to DDR500. Realistic? Maybe. Possible? Maybe. But this is really very obvious now. The memory is just isn’t designed for that frequency (btw, the same can be said for the Mobo and CPU). So, what do we do? We isolate which is which.
The divisor:
If you are planning an asynch OC, you might want to use the so called divider. Revisiting our DDRfrq formula:
(*) DDRfrq = FSBfrqM * 2
It can be re-written as:
(*) DDRfrq = (FSBfrqM (DDRmul/DDRdiv)) * 2
In a 1:1 settings, it will yield us this:
(*) DDRfrq = (FSBfrqM (1/1)) * 2
Which is actually equal to this:
(*) DDRfrq = FSBfrqM * 2
So what in the heck do we need those DDRdiv and DDRmul for? Well, to play with a certain OC settings, pushing one area without putting as much pressure on the other. Ding ding ding….so, how about we keep our memory low and put pressure on the CPU instead? Getting the values from Scenario 2:
Given:
Target CPUfrq = 3000
Target FSBfrqC = 250
Target FSBfrqM = 200
CPUmul = 12
Using the formula for DDRfrq and a 5:4 divider (remember that DDRdiv/DDRmul thingy?)
Given:
Target CPUfrq = 3000
Target FSBfrqC = 250
Target FSBfrqM = 200
CPUmul = 12
DDRdiv = 5
DDRmul = 4
Unknown:
Target DDRfrq = ?
Therefore:
DDRfrq = (FSBfrqM (DDRmul/DDRdiv)) * 2
DDRfrq = (FSBfrqM (4/5)) * 2
DDRfrq = (250 (0.8)) * 2
DDRfrq = 200 * 2
DDRfrq = 400
VI. Killing the goat, dead on its tracks!!!
Scenario 4:
"Oh goody, system boots up, goes to Windows, and Prime95 stable. I must be better than God!!! I am more than a God!!! Hahaha, I RULE!!!!!!!! Worship me!!!! **toot**" SiSoft Sandra finished RAM Bandwidth Benchmark."FREAKSHOW!!! Not much improvement on the memory arena!!! This is blasphemy. This is a CURSE. I will vanish thee from the face of the Earth for all eternity!!! Begone, demon of creepiness….out of my sight!!!"
Poor bloke, have to spend money to upgrade his RAM to DDR500. Now, go solve his needed RAM frequency on your own

…It’s pretty obvious. And if it is not obvious, most, if not all, of the basics are covered anyway to help solve the needed improvement area.
VII. Seven, yes, this is section 7….
We can derive both frequency of the front side bus, as well as the needed memory, and getting the CPU speed target using basic math skills. CPU and Memory ratio can be set to put certain aspect of strain from one or the other or both.
_____________________________________________________________________________
******************************************************************
******************Part IV - "Some Chipset Notes"******************
Note: Doesn't discuss all chipsets
Intel Chipsets
Intel divided their chipsets into three(3) major categories. They are targetted for different purpose and markets: value, mainstream, high-end. Chipsets plays a major role in the motherboard's performance. Not that other aspects aren't equally important, but more often than not, they are the primarily driver of the price and peformance of the motherboard you choose. For example, it dictates whether you can use AGP 8x, USB 2.0 or what kind of CPU and memory is best combined. Chipsets are "bundled" as pair of Northbridge chipsets and Southbridge chipsets.
(*) Northbridge chipset is also called G/MCH (Graphics/Memory Controller Hub)
(*) Southbridge is also called I/OCH or ICH (Input/Output Controller Hub).
Do note that in this article, I will not delve into too much detail, and will just let you do the research of your own by clicking the link next to the chipset model line.
I Value Desktop Chipsets
The value desktop chipsets are based on Intel 84x series of chipsets. There are different flavors, and varies based on "features" supported. The i845 mainly covers 533/400Mhz type of PSB/FSB system, while the newer i848 provides support for Northwood "C" and Prescott "E" Processors with 800Mhz FSB.
i84x:
http://developer.intel.com/design/chipsets/linecard/valuepc.htm
DM's Note: If you are planning to build a value desktop, I would suggest to get a motherboard that is based on i848 chipset. They will at least be usable for your HT-enabled CPU.
II Mainstream and Performance Desktop Chipsets
The Mainstream and Performance desktop chipsets are based on Intel 86x/9xx series of chipsets. As with i84x chipsets, there are different flavors, and varies based on "features" supported. With the abundant of chipset flavors, it's always nice to check on the supported CPU and don't get carried away by the marketing semantics.
i925/i915/i875/i865:
http://developer.intel.com/design/chipsets/linecard.htm
DM's Note: On s478, if you are a gamer, skip i865GV chipset, if you're planning to get an 800Mhz-PSBed CPU, skip i865P. They will at least be usable for your HT-enabled CPU. As for LGA775, I'd skip i915GV and i910GL since both doesn't support PCI Express x16.
III Server and Workstation Chipsets
I am not going to claim I know a whole lot about the Server and Workstation chipset. I only know about the i9xx/i8xx and completely lack experiece with the iExxxx series. My only dabble with the iExxxx chipsets is thru actual workstation usage and not much tinkering about its capabilities. However, this section will tell user that the i875 and i925 are the top performing chipsets since they overlap the server, workstation, and performance desktops systems.
iE75xx/iE72xx/iE88xx/i925/i875:
http://developer.intel.com/design/chipsets/linecard/svr_wkstn.htm
DM's Note: Nada.
Hmm...missus is in SG, I'm bored...oh welllllll...just another quick write up to pass the time...
_____________________________________________________________________________
******************************************************************
***************Part V - "Basic "Other" Essentials for Good System OC"**************
I. Introduction
As a starter, when I say "System", it's composed of "Hakelberipin": CPU, motherboard, and RAM. I don't treat video card OC in the same level as System OC, since IMO, video card OC is just a matter of getting that "coolbits" or "atitool" and working with sliders, then see what works. Though there's still other variables, I just can't compare it to System OC.
II. System Overclock
For a good System OC (which I'll just simply call OC for short), we all know that we'll need good CPU, Memory, and of course motherboard and PSU among others. However, there are still a couple of good OCing parts that can help you push your hardware to its limits. These parts are in the incarnation of hard drive and video card.
III. What's with Hard Drive and Video Card?
While matured chipsets such as i865 and i875 do have PCI lock, there will come a time that this lock will be "picky". At a certain FSB (usually, 260FSB+++), the lock will begin to "fail". While hardware detection software will still show you that the PCI frequency is still "locked", in my experience, you will need to adjust the PCI frequency manually to compensate and maintain stability.
Now, why all these mumbo jumbo when the section is about hard drive and video card? Well, as mentioned in the chipsets section, the SouthBridge is the I/O Controller, which is tied to the PCI, which is where the HardDrive controller is also located. But what about the VC, isn't AGP supposed to be terminated at Northbridge? We'll go into that next.
So what about them NB and SB, and HD and VC? Well, to cut it short in here, SATA HDs are more sensitive to PCI frequency changes. And so does the AGP. Assume for example that you increase the NB voltage. More often than not, you're actually increasing vAGP, hence, the VC is impacted. For the SATA, if your HD is such a crap, more often than not, it'll "give in" with just minor PCI frequency changes. Hence, why I would suggest you to stick with the following "other hardware" for system OC.
(*) IDE Hard Drive
(*) PCI Video Card
So if in your quest to OC Hakelberipin, and you decided to change PCI and AGP frequency, you'll know you're not going to corrupt your IDE (well, not as easily as SATA), and you're not going to blow up your precious AGP card.
So worst scenario, you can't play a good game and have slow i/o system. But we're dealing with finding the highest System OC here, and it's always nice to remove all other variables. You can always build your needed rig, and at least get insurance that your rig can reach a certain speed when you have all the nice parts.
_____________________________________________________________________________
******************************************************************
*****************Part VI - "What’s in a RAM?"*****************
Oftentimes, when overclocking, you’ll come across this crossroad: should I go for a branded memory, or stick with generic? While the answer is a definite “yes, go branded” (see reasons below), there’s an exemption. For a low OC, and if you don’t care much about support, warranty and other “bling bling” factors such as looks, and effects, then this article is not for you. Of course, there’s always a chance that a generic RAM will OC really well, after all, OC is not just skill, it also involves luck. But if you’re like me, I don’t particularly like playing with luck since it’s not within my control.
Note that RAM performance can be qualified in at least two ways: frequency and timing, followed by size. The bigger the size is not always better. The faster the frequency is not always better. The tightest the timing is not always better. Balancing all of these will be the best deciding factor.
On an equally ram-sized system, the better one will be the one with better frequency, i.e. 2Gb DDR333 vs 2Gb DDR400, and in an equally rated frequency and size, timing is what matters most, i.e. 2Gb DDR333 CL3-4-4-8 vs 2Gb DDR333 CL2-2-2-5. Of course, it means that chipset and processors should support such frequency and timings to exploit the full potentials of your RAM.
Typically, overclocking-wise, a 2x256Mb RAM reaches higher frequency. However, a 2x512Mb RAM oftentimes perform much better, clock for clock versus the 2x256Mb partner on bandwidth benchamark software. Of course, a single 256Mb will oftentimes yield the highest frequency, but with performance penalty. For full technicalities behind this, I would recommend reading articles at Lost Circuit
http://www.lostcircuits.com, and also have a discussion with the site’s owner Michael Shuette (best RAM guy I had “email exchange” with). The next site would be Adrian’s Rojakpot
http://www.rojakpot.com/ and read the Bios Optimization Guide.
As for the chips used on the RAM, you’ll often see mentions about BH-5, CH-5, TCCD, etc. While it holds true that the kind of chips really is the key, it’s also important to note that the overall build and quality is also crucial. An analogy would be the fastest processor partnered with the crappiest motherboard. More often than not, branded RAMs have been thoroughly tested and the chips are placed with the best PCB, circuitry, and finest parts. With this approach, it’s not a “hit or miss” approach, and therefore, you are assured that you get what you buy. If you say you want/need a 2x512Mb DDR400 CL2-2-2-5, you’ll get that 2x512Mb DDR400 CL2-2-2-5 instead of random 2x512Mb DDR400 with one having CLx-x-x-x and the other having CLy-y-y-y.
In closing, always go for the best branded memory you can afford. You don't have to spend a fortune though, in fact, some branded RAMs are targetted for low price segment. A difference of Php400 to Php800 between branded and generic is not "small", but it pays more in the long run...
Some of the reasons why you should go for branded ram aside from OC capability:
a) Brand Name, which so many says the only thing you're buying (and oftentimes, abhor the product) is what counts the most. Imagine here at TPC, your name means a lot.
b) Performance, is the next thing. Why do you think there are a lot of performance tests being done by many hardware review sites? Because there's difference.
c) Compatibility, even your motherboard manufacturer will list down their preferred and tested ram by way of QVL. By this, you are assured that your mobo will work flawlessly.
d) Support, oftentimes, generic are only supported on "the local" level i.e. the store where you bought your RAM. There's no technical support on email, web, documentation (of course, except on forums like this). Branded ones will often have great support, because they will protect their name and of course, the customer is the key to continue their brand =).
e) Warranty, branded ones have longer and better warranty
f) Assurance of quality, need I say more?
g) Then there are looks aka “bling bling” factor =), pcb used, circuitry design, etc. but those are the finer details =)...
_____________________________________________________________________________
******************************************************************
********************"Glossary of Terms"********************
vCore = CPU's core voltage
vDIMM = RAM's voltage
vAGP = is the AGP's voltage, usually associated with Northbridge
vNorthbridge = is the Northbridge's voltage, also commonly directly associated with vAGP
Mobo = Motherboard
FSB = Front Side Bus, usually from 100Mhz to 200Mhz, and lately, 266Mhz.
PSB = Processor System Bus, usually 400Mhz, 533Mhz, 800Mhz, and lately, 1066Mhz
©2004 Death Metal
All rights reserve
All wrongs deserve
Rev 3.0