This problem was solved almost 15 years ago