Made everything use smart pointers for easier memory management