move function to avoid merge conflict