I have written two articles here with solutions to solve this problem. Maybe it'll be useful for somebody:
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)