oops, very long but interesting story indeed