There are many ways to further develop this class. you could, for example, change the time window to being part of each clients property or even make it stochastic.
there are many adaptations for solving zero-distance nodes for the CW algorithm (some times, as in the example, even if two node have zero distance between them, the algorithm will suggest a route that visits the nodes non-consecutively).
if you have any doubts on how to implement further developments to the class, or have a question about why I wrote something stupidly inefficient or absurd in the code, please write me trough the site :)
please remember this is intended as a 100% theoretic approach to a real routing problem, and even tough this algorithm is used by commercial packages sold, we don't recommend its usage.