improve hasField