+1 that is the best approach I have ever seen