updated reflections + re-factored solution