afaik using valueDataType avoids cast(and function call) here