Note: the function being private, some of my comments are probably not relevant. But in that  case, you might make further assumptions (trying to include them in the function name) to simplify it ?