updated arrow logic