add some validation of arguments passed to Edge.new