An overlay filesystem is described. The overlay filesystem is capable of accessing files from a first layer or a second layer based on one or more criteria. The overlay filesystem is also capable of saving changes made to any files in a different layer while preserving the original files in the original layer.