Thanks for posting this. I had to change a few things around to get this to work on the system I'm supporting (and I need to integrate it into the whole codebase). That said, this guide was a way better starting point than anything else I found.