By Donovan Parks (donovan.parks - at - gmail.com)
Source code available upon request.