code: public synchronized void append(XEvent event) throws IOException {
  		// remember insert position
  		long insertPosition = storage.length();
  		// position storage pointer at end of storage
  		storage.seek(insertPosition);
  		// encode event to byte array
  		byte evtEnc[] = encode(event);
  		// compute segment length: add some slack to accomodate for later,
  		// larger versions of this entry
  		int segmentPaddingSize = evtEnc.length / 4;
  		int segmentSize = evtEnc.length + segmentPaddingSize;
  		byte segmentPadding[] = new byte[segmentPaddingSize];
  		Arrays.fill(segmentPadding, (byte) 0);
  		// record offset to subsequent audit trail entry for forward
  		// skips; as size of event encoding + 12 bytes (for forward and
  		// backward offset marker and payload size)
  		storage.writeInt(segmentSize + 12);
  		// record offset to previous event (for backward skips)
  		storage.writeInt((int) (insertPosition - lastInsertPosition));
  		// record actual payload size
  		storage.writeInt(evtEnc.length);
  		// record event encoding data
  		storage.write(evtEnc);
  		// record padding data
  		storage.write(segmentPadding);
  		// update last position pointer to this entry
  		lastInsertPosition = insertPosition;
  		// update collection size
  		size++;
  	}
docs: Appends a new event to the end of this collection.
  <p>
  Notice that a call to this method does not affect the current position
  events are read from.
  
  @param ate
  The event to append