move _setvalue to BaseField