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!