introducing templates for array lists