Updated generic template