Check this . (And just so I don't get accused of failing to attribute ideas to their originators, thanks to Steve hyperdub for the link.)