representation impl