reason is self containment. if there's conditions that will prevent the called method from working (properly), like the pvr manager not being started, then it should be checked in that method. optimising the new/delete out by checking the condition in the called method is fine