diff --git a/RTX class/BalazsAperture.m b/RTX class/BalazsAperture.m
index 32263f44b52c6a51b282ff058910756591ea991d..6c08f79145b357530a32b1b7a800fb664e23fee5 100644
--- a/RTX class/BalazsAperture.m	
+++ b/RTX class/BalazsAperture.m	
@@ -32,10 +32,11 @@ classdef BalazsAperture < Barrier
         function histogram = getCollisionHistogram(obj) %change from original
             histogram = obj.collisions;
         end
-        function post_collide(obj, col)
+        function post_collide(obj, col, trace)
             if (col.collided) %change from original
                 i = floor(obj.nslice*(col.pos.y-obj.center.y+obj.size/2)/obj.size) + 1;
-                obj.collisions(i) = obj.collisions(i) + 1;
+                phase = trace.init_phase + 2*pi * mod(trace.length, trace.wavelength)/trace.wavelength;
+                obj.collisions(i) = obj.collisions(i) + exp(1i*phase);
             end
         end
         function plot_self(obj)
diff --git a/RTX class/Barrier.m b/RTX class/Barrier.m
index 837aa3f44022b45c456bc995824a95b000ff21b9..02fb51c5a197d5d42a832fad59a3ef1d03411181 100644
--- a/RTX class/Barrier.m	
+++ b/RTX class/Barrier.m	
@@ -1,7 +1,7 @@
 classdef (Abstract) Barrier < matlab.mixin.Heterogeneous & handle
     methods (Abstract)
         collide(obj, ray) % override this function with custom collision
-        post_collide(obj, col)
+        post_collide(obj, col, trace)
         plot_self(obj)
     end
     
diff --git a/RTX class/ParabolaReflector.m b/RTX class/ParabolaReflector.m
index 8156d2d771cf69ea6a7a21b5176666dfa65c2b75..646325652e5193e6acae6f400b75b98a6b6c3341 100644
--- a/RTX class/ParabolaReflector.m	
+++ b/RTX class/ParabolaReflector.m	
@@ -36,7 +36,7 @@ classdef ParabolaReflector < Barrier
                 end
             end
         end
-        function post_collide(obj, col)
+        function post_collide(obj, col, trace)
         end
         function plot_self(obj)
             pri_y = -obj.diameter/2:obj.diameter/2000:obj.diameter/2;
diff --git a/RTX class/PlaneReflector.m b/RTX class/PlaneReflector.m
index 4d33c6d1779a443aa78114bc92f3acd32d3c2da6..0397d486c32c6bf5f542458545589eed721f3f5f 100644
--- a/RTX class/PlaneReflector.m	
+++ b/RTX class/PlaneReflector.m	
@@ -25,7 +25,7 @@ classdef PlaneReflector < Barrier
                 col.collided = false;
             end
         end
-        function post_collide(obj, col)
+        function post_collide(obj, col, trace)
         end
         function plot_self(obj)
             plot([obj.center.x obj.center.x],...
diff --git a/RTX class/Trace.m b/RTX class/Trace.m
index fb0b15c2e13bfa1779fd872f4aa163afc3649326..b1e98d7a5690299802b2f3251cebbe0f15db4d7d 100644
--- a/RTX class/Trace.m	
+++ b/RTX class/Trace.m	
@@ -37,7 +37,7 @@ classdef Trace < handle
                     ncol = ncol + 1;
                     next_ray = Ray(col.pos, col.reflDir);
                     obj.rays(end+1) = next_ray;
-                    barriers(col_barrier).post_collide(col);
+                    barriers(col_barrier).post_collide(col, obj);
                     if col.stop
                         obj.trace_end();
                         break;
diff --git a/RTX class/simclass_test.m b/RTX class/simclass_test.m
index fc71a75983ce8c8aa4c9e27c34130f99a60175f4..83781d8d67981af35fb552337498ac4d59f77306 100644
--- a/RTX class/simclass_test.m	
+++ b/RTX class/simclass_test.m	
@@ -5,7 +5,7 @@ reflectors(end+1) = BalazsAperture([3 0], 20, 1000);
 
 phi_start = -pi;
 phi_stop = pi;
-n = 1000;
+n = 10000;
 wavelength = 3e8/1e9;
 
 antenna = Antenna(Vect(1,0));