return undefined if unknown input