ch07 and ch09
first running version

using size and hash as unique id