3 types of blocks