defwang - seems like mark has some experience doing this

See more : defwang