first alg for reflections

will optimise in a mo