basic block structure