def load_element_single(properties, data):
    """
    Load element data with lists of a single length
    based on the element's property-definitions.

    Parameters
    ------------
    properties : dict
      Property definitions encoded in a dict where the property name is the key
      and the property data type the value.
    data : array
      Data rows for this element. If the data contains list-properties,
      all lists belonging to one property must have the same length.
    """
    col_ranges = []
    start = 0
    row0 = data[0]
    for name, dt in properties.items():
        length = 1
        if '$LIST' in dt:
            # the first entry in a list-property is the number of elements in the list
            length = int(row0[start])
            # skip the first entry (the length), when reading the data
            start += 1
        end = start + length
        col_ranges.append((start, end))
        # start next property at the end of this one
        start = end

    return {n: data[:, c[0]:c[1]].astype(dt.split('($LIST,)')[-1])
            for c, (n, dt) in zip(col_ranges, properties.items())}