1. A computer implemented method for storing data on a storage device and retrieving data from the storage device comprising the steps of: a. pre-allocating in a processor a plurality of empty files at the storage device, each of the empty files having a pre-determined file size; b. overwriting sequentially in a processor the empty files with a plurality of data blocks, each of the data blocks having a pre-determined size, the data blocks being defined by an event, the event comprising an expression, the expression comprising at least three fields, the fields being a unit, an action and a date; and being assigned to the event an agent that created the event and a subject to which the event concerns; and c. retrieving overwritten data blocks from the storage device.