Smart pointers used, "useless" deal counter removed (maybe not useless, cf "TODO" in the code).
Needs to run tests, and check if I didn't introduce any regression (normally not :) )