remove duplicate code
refactoring
bugfix:allow question mark