same as previous comment about the optional method and no cast -  if this can be required make it required and remove the conditional all together