basic block and gui