A device having a first memory configured to store an initial image for operating the device, a part of the initial image being initially stored at a third set of contiguous locations in the first memory, the device being further configured to store update data for updating the device by generating a replacement image, the update data defining the replacement image at least in part by a transformation of content of the initial image; the device being configured to update the initial image by the steps of: storing the part of the initial image at a first set of locations offset from the third set of locations; applying the update data to form a part of the updated image in dependence on the content of the part of the initial image; and storing the part of the updated image in memory of the device at a second set of memory locations non-overlapping with the first set of locations, wherein the second set of memory locations overlaps the third set of contiguous locations, wherein: the first set of locations is a first set of contiguous locations; the device is configured to perform the step of storing the part of the initial image at the first set of contiguous locations by shifting the entirety of the initial image in the first memory from an original contiguous block of the first memory to a second contiguous block of the first memory overlapping the original contiguous block, wherein the lower memory locations of the second contiguous block overlap the original contiguous block and the higher memory locations of the second contiguous block do not overlap the original contiguous block, and wherein the first set of locations do not overlap with the third set of locations; and the update data defines a set of chunks of the updated image in dependence on respective chunks of the initial image, the set of chunks of the updated image including a chunk that is the part of the updated image and the set of chunks of the initial image including a chunk that is the part of the initial image, and the applying comprises progressively forming the updated image such that each chunk of the updated image is formed in order of increasing memory locations of the chunk of the initial image on which it is dependent. storing the part of the initial image at a first set of locations offset from the third set of locations; applying the update data to form a part of the updated image in dependence on the content of the part of the initial image; and storing the part of the updated image in memory of the device at a second set of memory locations non-overlapping with the first set of locations, wherein the second set of memory locations overlaps the third set of contiguous locations, wherein: the first set of locations is a first set of contiguous locations; the device is configured to perform the step of storing the part of the initial image at the first set of contiguous locations by shifting the entirety of the initial image in the first memory from an original contiguous block of the first memory to a second contiguous block of the first memory overlapping the original contiguous block, wherein the lower memory locations of the second contiguous block overlap the original contiguous block and the higher memory locations of the second contiguous block do not overlap the original contiguous block, and wherein the first set of locations do not overlap with the third set of locations; and the update data defines a set of chunks of the updated image in dependence on respective chunks of the initial image, the set of chunks of the updated image including a chunk that is the part of the updated image and the set of chunks of the initial image including a chunk that is the part of the initial image, and the applying comprises progressively forming the updated image such that each chunk of the updated image is formed in order of increasing memory locations of the chunk of the initial image on which it is dependent. the first set of locations is a first set of contiguous locations; the device is configured to perform the step of storing the part of the initial image at the first set of contiguous locations by shifting the entirety of the initial image in the first memory from an original contiguous block of the first memory to a second contiguous block of the first memory overlapping the original contiguous block, wherein the lower memory locations of the second contiguous block overlap the original contiguous block and the higher memory locations of the second contiguous block do not overlap the original contiguous block, and wherein the first set of locations do not overlap with the third set of locations; and the update data defines a set of chunks of the updated image in dependence on respective chunks of the initial image, the set of chunks of the updated image including a chunk that is the part of the updated image and the set of chunks of the initial image including a chunk that is the part of the initial image, and the applying comprises progressively forming the updated image such that each chunk of the updated image is formed in order of increasing memory locations of the chunk of the initial image on which it is dependent.