This function is delegating too much work to the helper method.