making progress on the refactoring of Edge class