Add more constructors for edge