bonus solutions done with reflections