use initializer to avoid immutable index