I should only need findCommonRoot now and someway to prevent infinite loops! :P