add validation
fixbug when nil