Improve the trace function to not need any pre-processing and implicitly make any necessary edge splits instead