This has been sitting in staff section for some time, I haven't found the motivation to work on it. Figured I'd post it to at least get the beginning of it out there to help folks learn, and I'm thinking that if it's public then I'll be more motivated to finish it. Good luck everyone!