anchor.diff:  
   	(log-mp4-atom "find-mp4-atoms: ~a, before read-file loop, file-position = ~:d, end = ~:d"
   				  (stream-filename mp4-file) (stream-seek mp4-file 0 :current) (stream-size mp4-file))
  -	(setf (mp4-atoms mp4-file) (make-mp4-atom-collection))
  -	(atom-read-loop mp4-file (stream-size mp4-file)
  -					(lambda ()
  -					  (let ((new-atom (make-mp4-atom mp4-file)))
  -						(when new-atom
  -						  (add (mp4-atoms mp4-file) new-atom)))))
  -
  -	(log-mp4-atom "find-mp4-atoms: returning atom-collection of size ~d" (size (mp4-atoms mp4-file)))))
  +
  +	(let ((atoms))
  +	  (atom-read-loop mp4-file (stream-size mp4-file)
  +					  (lambda ()
  +						(let ((new-atom (make-mp4-atom mp4-file)))
  +						  (when new-atom
  +							(push new-atom atoms)))))
  +	  (setf (mp4-atoms mp4-file) (nreverse atoms))) ; preserve in-file-order
  +
  +	(log-mp4-atom "find-mp4-atoms: returning list of size ~d" (length (mp4-atoms mp4-file)))))
  +
  +(defmethod map-mp4-atom ((atoms list) &key (func nil) (depth nil))
  +  "Given a list of atoms, call map-mp4-atom for each one"
  +  (log5:with-context "map-mp4-atom"
  +	(dolist (a atoms)
  +	  (map-mp4-atom a :func func :depth depth))))
   
   (defmethod map-mp4-atom ((me mp4-atom) &key (func nil) (depth nil))
     "traverse all atoms under a given atom"
  
positive.code: (defclass atom-mdia (mp4-atom) ())
  (defmethod initialize-instance :after ((me atom-mdia) &key (mp4-file nil) &allow-other-keys)
    (read-container-atoms mp4-file me))
  
  (defun find-atom-class (id)
    "Search by concatenating 'atom-' with ID and look for that symbol in this package"
  
negative.code:   (stream-read-sequence mp4-file (- (atom-size atom) 16)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AUDIO PROPERTY ATOMS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; the pure container classes we need recurse into
  (defclass atom-trak (mp4-atom) ())
  (defmethod initialize-instance :after ((me atom-trak) &key (mp4-file nil) &allow-other-keys)
    (read-container-atoms mp4-file me))
  (defclass atom-minf (mp4-atom) ())
  (defmethod initialize-instance :after ((me atom-minf) &key (mp4-file nil) &allow-other-keys)
    (read-container-atoms mp4-file me))
  (defclass atom-moov (mp4-atom) ())
  (defmethod initialize-instance :after ((me atom-moov) &key (mp4-file nil) &allow-other-keys)
    (read-container-atoms mp4-file me))
  