promote the index to make the arrays stay virtual
make prop_procedure immutable