translation algorithm