refactor - non strings are passed as array of value and type