Thank you so much for taking the time to write such a clear and complete solution to this problem. After struggling with this problem for several hours, I was able to implement this solution in under 10 minutes.
This is the big difference between a full article and a short stack overflow answer. This very clearly outlined the cause of the problem, along with all of the steps needed to solve it.
There needs to be more writing online like this.