read template static instead of self