removed all smart pointers