added graph and edge classes from recit