use cell implicit struct [index val], refactored functions around that first structuration