The primary purpose of this code is to help with the learning. Even though some parts of this code might be thoroughly tested, it's still experimental code.
Any kind of improvement requests are always welcome.
Unless otherwise stated, I make no copyright claim on this code.