reference counting

mow not only one smart pointer can own an object
Aleksandresku 187-188
added valashko's reporter testing class