changed ctor assignments to initialization lists, got rid of compiler
warning, added one more smart pointer