add tempalte extends feature