I'm working on the same sort of thing, yes, there's a variety of them out there which i could "Borrow", but where's the fun in using someone else's code? Design your own and you learn from it so much better.
By starting on the current level and working back to root, you bypass all the other...