Thanks to everyone who is leaving comments, I *knew* there would be some great suggestions!
Harro: That's a nice extension to this method, thanks for adding it.
Bart: I haven't used CuddleFish but after your mention I will look out for it in future.
David: Thanks for the example links, those are great exaamples of this type of approach in use :)
Bruce and Mark: some great additional resources listed there - cheers!