added some datatypes to represent edges