To improve dependency injection in ProjectsMap, we create two
interface contracts, APIClient and APIFactory, which abstract
an API client and a class to instantiate them.
That allow to easily inject an API client and increase components
independance.