defensive
calculate properly if new projects need to be added