still trying to figure out the best generic template design