 Our I type format is primarily used for immediate instructions. In this case, we still have our opcode as the upper six bits. We only have two register fields this time. And then the remaining 16 bits are dedicated to the immediate. So this can be used for things like an add immediate instruction where we'd like to add some constant value to the contents of a register and store the results into a different register. We will also use this type for load and store instructions where we have a base address in a register, a constant offset that we put in the instruction, and then we have some register that we either want to read from or write to. We will also use the I type format for branch instructions. In this case, the immediate field is going to tell us how far either forwards or backwards we want to go from our current position. It will get a little bit more complicated than that. But our branch instructions are one case where it's not immediately obvious that this should be an I type instruction.