Can we avoid one letter parameter/variable names and use something more descriptive? Otherwise it will be much more difficult later to maintain. Also please avoid putting foul language in comments. While the word doesn't offend me, it de-values the codebase to have it laced with foul language.<br>
Otherwise it looks great! :)<br><br>Chris<br>