diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-14.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-14.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-14.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-14.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-18.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-18.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-18.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-18.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-2.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-2.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-2.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-2.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-6.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-6.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-6.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-6.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-9.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-9.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_-9.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_-9.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_12.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_12.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_12.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_12.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_15.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_15.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_15.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_15.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_2.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_2.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_2.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_2.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_5.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_5.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_5.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_5.mat
diff --git a/projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_9.mat b/projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_9.mat
similarity index 100%
rename from projects/project_adaptation_fit/p_unit_2012-03-30-aa_fi_curve_9.mat
rename to projects/project_adaptation_fit/data/p_unit_2012-03-30-aa_fi_curve_9.mat
diff --git a/projects/project_eod/EOD_data.mat b/projects/project_eod/data/EOD_data.mat
similarity index 100%
rename from projects/project_eod/EOD_data.mat
rename to projects/project_eod/data/EOD_data.mat
diff --git a/projects/project_eyetracker/eye_tracking.mat b/projects/project_eyetracker/data/eye_tracking.mat
similarity index 100%
rename from projects/project_eyetracker/eye_tracking.mat
rename to projects/project_eyetracker/data/eye_tracking.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-14.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-14.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-14.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-14.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-18.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-18.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-18.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-18.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-2.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-2.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-2.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-2.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-6.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-6.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-6.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-6.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-9.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-9.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_-9.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_-9.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_12.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_12.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_12.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_12.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_15.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_15.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_15.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_15.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_2.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_2.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_2.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_2.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_5.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_5.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_5.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_5.mat
diff --git a/projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_9.mat b/projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_9.mat
similarity index 100%
rename from projects/project_onset_fi/p_unit_2012-03-30-aa_fi_curve_9.mat
rename to projects/project_onset_fi/data/p_unit_2012-03-30-aa_fi_curve_9.mat
diff --git a/projects/project_photoreceptor/photoreceptor_data.zip b/projects/project_photoreceptor/photoreceptor_data.zip
deleted file mode 100644
index 2bf1127..0000000
Binary files a/projects/project_photoreceptor/photoreceptor_data.zip and /dev/null differ
diff --git a/projects/project_stimulus_reconstruction/Makefile b/projects/project_stimulus_reconstruction/Makefile
index dad25ce..2574730 100644
--- a/projects/project_stimulus_reconstruction/Makefile
+++ b/projects/project_stimulus_reconstruction/Makefile
@@ -7,4 +7,4 @@ clean:
 	rm -f `basename *.tex .tex`.pdf
 
 zip: latex
-	zip `basename *.tex .tex`.zip *.pdf *.dat *.mat
+	zip `basename *.tex .tex`.zip *.pdf  data/*.mat
diff --git a/projects/project_stimulus_reconstruction/p-unit_spike_times.mat b/projects/project_stimulus_reconstruction/data/p-unit_spike_times.mat
similarity index 100%
rename from projects/project_stimulus_reconstruction/p-unit_spike_times.mat
rename to projects/project_stimulus_reconstruction/data/p-unit_spike_times.mat
diff --git a/projects/project_stimulus_reconstruction/p-unit_stimulus.mat b/projects/project_stimulus_reconstruction/data/p-unit_stimulus.mat
similarity index 100%
rename from projects/project_stimulus_reconstruction/p-unit_stimulus.mat
rename to projects/project_stimulus_reconstruction/data/p-unit_stimulus.mat
diff --git a/projects/project_stimulus_reconstruction/pyramidal_spike_times.mat b/projects/project_stimulus_reconstruction/data/pyramidal_spike_times.mat
similarity index 100%
rename from projects/project_stimulus_reconstruction/pyramidal_spike_times.mat
rename to projects/project_stimulus_reconstruction/data/pyramidal_spike_times.mat
diff --git a/projects/project_stimulus_reconstruction/pyramidal_stimulus.mat b/projects/project_stimulus_reconstruction/data/pyramidal_stimulus.mat
similarity index 100%
rename from projects/project_stimulus_reconstruction/pyramidal_stimulus.mat
rename to projects/project_stimulus_reconstruction/data/pyramidal_stimulus.mat
diff --git a/projects/project_vector_strength/Makefile b/projects/project_vector_strength/Makefile
new file mode 100644
index 0000000..86b971c
--- /dev/null
+++ b/projects/project_vector_strength/Makefile
@@ -0,0 +1,10 @@
+latex:
+	pdflatex *.tex > /dev/null
+	pdflatex *.tex > /dev/null
+
+clean:
+	rm -rf *.log *.aux *.zip *.out auto
+	rm -f `basename *.tex .tex`.pdf
+
+zip: latex
+	zip `basename *.tex .tex`.zip *.pdf data/*.zip
diff --git a/projects/project_vector_strength/solution/main.m b/projects/project_vector_strength/solution/main.m
new file mode 100644
index 0000000..379e349
--- /dev/null
+++ b/projects/project_vector_strength/solution/main.m
@@ -0,0 +1,15 @@
+% partial solution for the vector strength project
+clear
+files = dir('../data/*.mat');
+dt = 1./20000;
+vs = zeros(length(files), 1);
+for i = 1:length(files)
+    load(strcat('../data/', files(i).name))
+    eod_time = (1:length(eod)) .* dt;
+    zero_crossings = zeroCrossings(eod, eod_time);
+    while spike_times(1) <= zero_crossings(1)
+        spike_times(1) = [];
+    end
+    phases = spikeEodPhase(spike_times, zero_crossings);
+    vs(i) = vectorStrength(phases); 
+end
diff --git a/projects/project_vector_strength/solution/spikeEodPhase.m b/projects/project_vector_strength/solution/spikeEodPhase.m
new file mode 100644
index 0000000..f55d250
--- /dev/null
+++ b/projects/project_vector_strength/solution/spikeEodPhase.m
@@ -0,0 +1,10 @@
+function phi = spikeEodPhase(spike_times, eod_times)
+ phi = zeros(length(spike_times), 1);
+ period = mean(diff(eod_times));
+ for j = 1:length(spike_times)
+     t = spike_times(j);
+     phase = (t - eod_times(find(eod_times <= t, 1, 'last'))) / period * 2 * pi;
+     phi(j) = phase;
+ end
+
+
diff --git a/projects/project_vector_strength/solution/vectorStrength.m b/projects/project_vector_strength/solution/vectorStrength.m
new file mode 100644
index 0000000..fc9bc43
--- /dev/null
+++ b/projects/project_vector_strength/solution/vectorStrength.m
@@ -0,0 +1,3 @@
+function vs = vectorStrength(phases)
+
+vs = sqrt((mean(cos(phases)).^2) + (mean(sin(phases)).^2));
\ No newline at end of file
diff --git a/projects/project_vector_strength/solution/zeroCrossings.m b/projects/project_vector_strength/solution/zeroCrossings.m
new file mode 100644
index 0000000..2d614a2
--- /dev/null
+++ b/projects/project_vector_strength/solution/zeroCrossings.m
@@ -0,0 +1,9 @@
+function xings = zeroCrossings(data, time, threshold)
+    
+if nargin == 2
+    threshold = 0;
+end
+
+shift_data = circshift(data, 1);
+
+xings = time((data >= threshold) & (shift_data < threshold));
\ No newline at end of file