moved Edge into interface