The problem that I was trying to solve is this:
* Main creates an A
* B is an implementation of A
* All Bs need a C, but not all As are B. Therefore, not all As need a C
* ...Meaning that Main can't be responsible for the creation of C, since C is implementation-specific