anchor.diff:  	     (defmethod %get-friends ((component ,name))
   	       ',friends)
   
  +	     (defun ,update-component(entity &key ,@update-args)
  +	       (let ((,component (get-item-from-%component-bag-at
  +				  (entity-components entity) ,id)))
  +		 ,@(mapcar
  +		    λ`(when ,(third _1)
  +			(setf (,_ ,component) ,(first _1)))
  +		    slot-names
  +		    update-args)))
  +
   	     (defun ,pass (,entity)
   	       ;; cant use our with-macro from earlier as it's not yet compiled
   	       ;; so we locally define it here and use it immediately
  -	       (macrolet ((,with (,entity &body body)
  -			    (gen-slot-accessors
  -			     ,entity ',original-slot-names ',original-slot-names
  -			     ',hidden-slot-names body ',id)))
  -		 (let ((,component (%get-from ,entity)))
  -		   (,with ,entity
  -			  (labels ((,update (&key ,@update-args)
  -				     ,@(mapcar
  -					λ`(when ,(third _1)
  -					    (setf (,_ ,component) ,(first _1)))
  -					hidden-slot-names
  -					update-args)))
  -			    (declare (ignorable (function ,update)))
  -			    ,@pass-body)))))
  +	       (let ((,component (get-item-from-%component-bag-at
  +				  (entity-components ,entity) ,id)))
  +		 (symbol-macrolet ,(mapcar λ`(,_ (,_1 ,component))
  +					   original-slot-names
  +					   slot-names)
  +
  +		   (labels ((,update (&key ,@update-args)
  +			      ,@(mapcar
  +				 λ`(when ,(third _1)
  +				     (setf (,_ ,component) ,(first _1)))
  +				 slot-names
  +				 update-args)))
  +		     (declare (ignorable (function ,update)))
  +		     ,@pass-body))))
   
   	     (let ((created nil))
   	       (defun ,system-init ()
  
positive.code: 			   ,@(when (not optimize)
  				   `((:constructor ,non-optimal-init))))
  	   ,@(if optimize
  		 (mapcar λ`(,_ ,@(rest _1)) hidden-slot-names slot-descriptions)
  		 `((,payload (make-instance ',payload-type)
  			     :type ,payload-type))))
  
  
negative.code:     (assert (valid-slot-descriptions-p slot-descriptions))
      (let* ((system-name (symb name :-system))
  	   (payload (symb :% name :-payload))
  	   (payload-type (hidden-name (symb name :-payload)))
  
  	   (reactive (eq (first depends-on) :reactive))
  	   (friends (if reactive (rest depends-on) depends-on))
  
  	   (let-id (hidden-name (symb name :-id)))
  	   (id (gensym "id"))
  
  	   (init (symb :make- name))
  