Actually do depth first traversal... idiot.