Looking at this, I feel that while there seem to be many different actual implementations, they really boil down to just a few similar core principles
Looking at this, I feel that while there seem to be many different actual implementations, they really boil down to just a few similar core principles