refactor array interfaces