Do these have have to be abstract? It should be the same thing for every stage. What if we define it here and pass in the context and adcreationmanager?