you forget to delete out. use smart pointers