added structure for basic block