project re-factored, again