return self on replace