modernization: started to introduce smart_ptr