class container;
   event e1,e2;
   bit 	 b3;
   function void triggers;
      $display("Triggering at %t",$time);
      ->e1;
      ->e2;
      ++b3;
   endfunction

endclass : container

module top;
   container c=new();
   always @c.e1 $display("e1 trigered at %t",$time);
   always @c.e2 $display("e2 trigered at %t",$time);
   always @c.b3 $display("b3=%b trigered at %t",c.b3,$time);
   
   initial begin
      container saved;
      
      #10 c.triggers;
      #10 $display("w = new;");
      saved = c; c = new();  // c.b3 initializes back to 0
      #10 c.triggers;
      $display("c = saved;");
      c = saved;
      #10 c.triggers;      
      #10 $display("c.e1 = c.e2");
      c.e1 = c.e2;
      #10 c.triggers;
 
   end
endmodule : top

      
   