Improve error handling when constructing incomplete cycles
Test constructing loops / cycles (100% coverage)