Improved splitting of new block incase of overlap with a previously
selected block. Made generation of blocks lazy.