edge by edge