working version of reach