finished template abstraction
items control