Thanks to all for the feedback on this question, especially Bob for such an excellent and thorough explanation along with the code reference.