by Andrej Mitrovic
http://forum.dlang.org/thread/llezieyytpcbcaoqeajz@forum.dlang.org?page=6
See Implementation
by Andrej Mitrovic