this looks interesting but long. I'm marking it so I can come back when I have more time.