Не совсем понял глубину проблемы - можно воспользоваться, например, принципом из http://habrahabr.ru/blogs/i_am_clever/31411/