skeleton
template first pass