x edge and y edge funcs