move unique block id from BlockGenerator to DocumentContext