more elegant way around dual-mode ARC/non-arc code.
Update tests to more thoroughly check preconditions