updated edge dectection