more re-factoring