Added template struct recursive definition