very interesting. I need to write some code that can do this.