Yet more re-factoring...