I wonder if we should give this function a different name since now we have 1) a module named ``translate``, 2) a function within the module named ``translate`` and 3) a method on states named ``translate``? Maybe ``perform_translation``? ``apply_translation``?