rearrange code
update stuff
use dictionary for basic block lookup speed
reorganize code and add basic block detection logic
finish implementing basic block detection algorithm
Merge branch 'new-approach'