uses weak for _parentViewController