separating algorithms between languages