Used make_shared instead of shared_ptr(new)