Abstract templates for most data structures