refactoring API methods and edge creation to take 'arrays' of edges