add replace function