use tools.reader to safely interpret values