Very nicely done ikel. That must have taken you ages to write and/or some burned fingers.
Is it me or did I miss the mention of helpers (see
here in manual) or is it perhaps a topic for which you haven't had time to actually write something yet ?
The same seems to be true for operator overloading (but that is better to understand why it is missing as it is adding depth/detail to an (existing) feature, just as f.e. overloading/inheritance etc)