eliminated bidirectional edge operator
relations are now objects instead of bare ids