I am unsure, so please correct me If I am wrong: 

I would prefer to create m_pRateControl here and pass it to addDeck. 
Can we introduce a removeDeck function to avoid the bad things? 
Maybe we can avoid introducing EngineControlOwnership that way.