allow single value and refactoring