Categorical construction - do I have a functor? I have the following situation: I have a construction that takes an object in a category $\mathcal{C}$ and via some totally noncanonical choices constructs an object in another category $\mathcal{D}$ where different choices result in (noncanonically) isomorphic objects in $\mathcal{D}$.  
I also have a second construction where given morphism in $\mathcal{C}$ say $f: X \to Y$, after choosing objects in $\mathcal{D}$ associated to $X$ and $Y$, say $X'$ and $Y'$, I can construct a map $f' : X' \to Y'$.   
Is there a way of putting these constructions together and calling it a functor?  It seems I would need a new category instead of $\mathcal{D}$ in which the objects are isomorphism classes of objects in $\mathcal{D}$.  
 A: A basic trick here is to "inflate" the category $\mathcal{C}$; e.g.define $\hat{\mathcal{C}}$ to be


*

*The objects are pairs $(X, C)$ where $X$ is an object of $\mathcal{C}$ and $C$ represents a particular collection of choices in the construction. (e.g. we might just pick $C = X'$)

*The morphisms are given by $\hom_\hat{\mathcal{C}}((X,C), (Y,D)) = \hom_\mathcal{C}(X,Y)$


The end result is that the functor $\hat{\mathcal{C}} \to \mathcal{C}$ that forgets the choices is an equivalence functor, and when doing your construction on objects of $\hat{\mathcal{C}}$, you now have canonical choices.
Of course, your construction still may or may not be a functor; e.g. you have to check that it preserves identities and composition.
With a sufficiently strong version of the axiom of choice, equivalence functors have weak inverses, so you also get an equivalence functor $\mathcal{C} \to \hat{\mathcal{C}}$ that makes a choice for each object of $\mathcal{C}$, which can be composed with functors $\hat{\mathcal{C}} \to \mathcal{D}$ to get a functor $\mathcal{C} \to \mathcal{D}$
