An index table, also called the cross-reference table, is typically located near the end of the file and gives the byte offset of each indirect object from the start of the file. This design allows for efficient random access to the objects in the file, and also allows for small changes to be made without rewriting the entire file ("incremental update"). Before PDF version 1.5, the table would always be in a special ASCII format, be marked with the codice_15 keyword, and follow the main body composed of indirect objects. Version 1.5 introduced optional "cross-reference streams", which have the form of a standard stream object, possibly with filters applied. Such a stream may be used instead of the ASCII cross-reference table and contains the offsets and other information in binary format. The format is flexible in that it allows for integer width specification (using the codice_16 array), so that for example, a document not exceeding 64 KiB in size may dedicate only 2  bytes for object offsets.