Player Skill Rankings


Wide Receivers ranked by Health
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
1Earl McQuade-- WR1345B+WRB+25A+C+B+C-B-D+B-A-D-D+D+C+D+B+D+B-B+B+
1Joe Brennan-- WR5976A-WRA-28C+A+B+C+D+D+B-C-C-C-B+C-B+A+C-A-C+
1Martin Wilson-- WR5691A-WRA-23A+D-C+C-C-A+D-D+B-D+D-B+B+D+B+
4Anthony Mawae-- WR789KRB+24B-C-A-B-C-B-C-C+D+D+C+D+B-A-A+A-
4Bill Fenerty-- WR620WR26B-A-C+B+D+D-B-C-C+D+D+C-D+D-C+A-B-C+
4Ed Bagarus-- WR460WR21C-B+C-C+C-B-B-B-D+D+C-C-B-A-A-
4Fred Office-- WR385WR22A+B-B-D+B+D+D-B-D+C-D-B+C+
4Gene Leonard-- WR745WR26C+B+B-C+D-B+C+D+D-C+D-D-B-D+A-B+A-
4James Hudock-- WR745WR27D+C+C+B-C+B-C+C-D+C+C-C+B+A-B-B+
4Leonard Hood-- WR745B-WRB-29B-A+C+C-D+C-D+C-C+B+C-A-B+C+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
4Leonard Nowak-- WR460B-KRB-23C+C+B+B-D-C-B-C-C-B+B-B-A-B+A-
4Ted Seabaugh-- WR620B-KRB-25B-C+B+B-C-C+C+D+D+D+D+D-B+C-C+C+B-
4Teddy Ribble-- WR620WR27B-D-C-C+D+C-A+B-D-C+C+D+C+A-
14Aaron Eck-- WR5597A-WRA-31A+A-B+B-A-A+D+D-C+C+B-A+C-
14Ben George-- WR620WR27C+A-C+D+D+B+B-D+D+B-B+B-C+B+B-C+
14Cameron Slater-- WR1741B+WRB+28A-B-B-D+C+B+D+B-D+D+C+
14Cloyce Dittman-- WR845B-GUNB-31A-B-A-A-C+D-C-C-D+D-D+D+C+B+B+
14Craig Rambo-- WR535WR23C-A-B-C-C-B+B-B+C+C-C+D-C-A-A-B-
14Dennis George-- WR620WR24B-A-B+C-B-B+D+B-D+D+C+D+A-B-
14Gil Andrusking-- WR620WR28A-B-D+B-B+B-C-C+A-C-B+B+B-
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
14Merv Bergerson-- WR535WR23C+A-B+D+B+C-A-D+D-D+D-D+D+B-C-A-B-B-
14Nate Ale-- WR1863B+WRB+28A-B-B+C-B-D+D+C+D+B-D+A-C+B-C+B+C-
14Norm Lathrop-- WR2525B+WRB+21A-B-B-C-A-D-C+D-C-D+C+C+B+A-B+A-B-
14Paul Cameron-- WR1663B+WRB+24A-D+C-B-B+B-B-C-C-D-D+D+C+B+C-A+A+
14Russell Tarrant-- WR1313B+WRB+25D-A-C+A-A-C+C+B+C-D+C-D+A-
14Stan Callens-- WR1073B+WRB+26C+A-B-B+A-C-D+D+D+D+B-B+C-C+B+A-A-B+
14Steve Charles-- WR1734B+KRB+26C+A-C+C+A-A-D+D+C-D+D+D-D+B-B-A-C-C+
14Ted Rudolph-- WR620WR24C+A-B-B+B+C+D+C-D+C-C-C+D-B-C-B+C-A-
14Wayne Nunley-- WR620WR25A-B+A-C+C+B+C-B-D+B-C+D-C+B-B-C+A-A-
30Adrian Smith-- WR620B-WRB-25D+B+D+D+C-D-B-D+C-C-D-A+C-
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
30Anthony Mallard-- WR745B-WRB-31B-B+B-B-A-C-B-C+C-C+B-A-C+B-B-
30Bill Cassady-- WR2126B+WRB+24B+B+C-C-B+D-D+B+D+C+B+
30Bob Compton-- WR745B-WRB-31C+B+B+D+D-C+B-B+D+D-B-D+A-B-B-B+C-
30Bob Sanders-- WR460WR22C-B+C+C+B+C+D+C+A-D-D-C+C-C-C-D+C-B-D+B-A-
30Butch Borden-- WR5410A-WRA-29B+C+C+A+D+B+A-D+C-B-D+C-D-A-B+C-A-B+
30Carson Gregory-- WR460WR22B+C+B-C+A-C-B-B-D-B-C-A-A-B-
30Cedric Taylor-- WR460WR24B+B-C-C+D-B-A-D-C-C-D-D+D+B-A-B+B-A-
30Dan Carmichael-- WR1625B+WRB+21C+B+B+A-C+D-C+C-C-B-C-D+C+B+C-B-B+B+B+
30Dan Mahoney-- WR1741B+WRB+25C-B+B-A-C+D+D+C+A+C-C-D+D-C-D-D+C+B+C-B+A+C+B-
30Dave Hubbard-- WR2221B+WRB+27B+B-C+A+D+C-D+D+A-B+B+B-
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
30Don Wiggins-- WR745B-WRB-28B-B+D+B-B-C-D+C+D-B+D-D-C-B+D+B+
30Eric Poole-- WR1017B+WRB+26A+B+C+B-B-D+C-C-C-C-D-C+B-A-C-A-B+A-
30Glenn Hester-- WR460B-GUNB-21C-B+C+B-C-C-D-D-A-D-D+C+C-D-C+B+B-B-B-
30Greg Perot-- WR745WR30C+B+B+D+B-B-D-D-D+D-D+B-A-
30Jim Meehan-- WR620B-WRB-25B-B+B-D+D-C+B+C+B+B-
30Jimmy King-- WR620B-WRB-25B-B+C+C+D+D+C-B-D+B-D+D-C+B+C-C+A-B+C+
30John Clarks-- WR1503KRB+24A-B+B-B-B+D+D+C-A+C+B+A-C+
30Kwame Farris-- WR620WR26D+B+B+B-B-D+D+D-D+C-C-D+D+A-C+C+B+C+
30Mark Richard-- WR385WR21C+B+B-A-A-D+D+B-D-C-B-C-D+D-C+A-D+B+C+B+
30Nick Taylor-- WR535WR22B+B-D+C-C-D+A-D+B-C-D+D+C-A-B-
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
30Oscar Beasley-- WR1250B+WRB+22B+B-A-C+C-C-D-D-D-C-B-D+C+B+A+B-
30Red Morrissey-- WR745B-WRB-29B+C+B+B+C-A-B-D+C-C-B-C+B+B+C+C+
30Shawn Farr-- WR620WR26A+B+B-C-C+D-B+B+C-D+C+D+D+D-A-C+
30Tom Jeffers-- WR620WR25B+B-A-B-D+D-C+B+D-C-D+C+D+C+B-
55Anthony Guillory-- WR620B-KR25C-C+B-C+D+B-B-C-D+C-D+D+A-C+A-B+C-
55Anthony Smith-- WR460WR22A+B-C-B-B-C-C-D+B+B+
55Antwaan Beasley-- WR385KR22B-C-C+D+D+C+D-C+D+C+D-C+B-B+A+A-B+B-A-
55Barry Cannavino-- WR385WR21C+C+C+C+C-B-B-B-C-C-C-B-D+D+C-B+B+A-
55Barry Smith-- WR310B-WRB-20C-C+C+A-D+D-B-B-C-D+C-B+A-C+B+B-B-
55Billy Nash-- WR620WR26C-C+C-D+C-D-C-D+D+C-B+A-B-B-
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
55Brett Tomaini-- WR535C+KRB-22C+C-D-C-B-B-D+D+D-C+C-B+C-
55Buff Gandee-- WR417WR22C-A-D-D-A-B-B-C-C-C-C-D+C-A-C-B-B+C+B+
55Carl Bonelli-- WR620WR25B+C+B-D+B-B-D+D+D+B-D+B+B-B+
55Charles Krause-- WR745B-WRB-27A-B-B+C-D-B-C-C-B-C-B-C+D+A-B+
55Charley Jackson-- WR745B-WRB-30C-A-B+C+C+C+A-C-C-D-D+B-C+D+B-B-C+
55Charley Wegert-- WR1017B+WRB+23C+D+D+D+B+C-C+D+D-D-B-C+B-B+B+
55Chris Pelluer-- WR745WR29C-C+B-C+D+D+B-D-D-D+C-A-B-B+
55Clifton Friede-- WR385WR22C-B+A-B-B-D+A-B+D+C+C-C-D+D+B+B-B+B+
55D.L. Dishman-- WR964B+WRB+24B-B+C+A+B+D+D-D+D-D-D-D+B-C+A+C+B-
55David Roche-- WR620B-KR23B-B-C-D+C+B+C-C+D+C+C+D-D-A-B-C+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
55Dean Rorison-- WR620WR27A+C-D+B-D+B+C-C+D+A-C+B-
55Don Williams-- WR1552B+WRB+22B+B-B-B+C-C-C-C-C+D-B+B+C-B+B+
55Emanuel Goodman-- WR460WR24A+C+B-B+D-D-A-A-D-C+D+C-D-C-B+B-B-B+B-B+
55Fred Secord-- WR385WR21C+B+D+C-B+C-D+D+A-B-B-A+
55Herman Tuiasosopo-- WR620WR26B-A-A-B-B-B-C+C+D-D-D-C+A-B+
55Howard Agler-- WR3804B+WRB+22A-B-D-B-B-A-C-D+B-B-D-D-B-A+B-B+
55Jake Allen-- WR620B-GUNB-26C-B-C+D+D+D+A-D+D-C+D-B-B+B-B-
55James Karcher-- WR745WR27A+B-B+D-D-B-D+C+C-D+D-B-C+A-B-
55Jeremy Blair-- WR620WR25C+A+C+B-A+C-C+B+C+D+D+C+B-B-A-C-B-
55Jim Schmidt-- WR535WR22C-C-B-D+A-D+D+C-D-C-D-D-B-C+B+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
55Keiron Alexander-- WR845B-WRB-31C+C-B+D+D+B-D+D-C+C+B+C-B-
55Keith Apsit-- WR745WR27A-B-D+C+B+D+C+C+D+C-B+A-B-A-B+
55Kenny Hansen-- WR2319B+WRB+28D-B-C+B-D-C+D+D-B+B+B-A-B-C-B+
55Leo Jackson-- WR460B-WRB-22C-B+A-D+B-C-C-B-D-C-C+C-A-B-C+
55Leon Freitas-- WR766WR30D+D+B+D-C+D+B+A-B+B+B-
55Paul Johnson-- WR460B-WRB-24C-B+D-B+D+D+B-D+D+C-B+C+B+
55Reggie Douglas-- WR745WR29B+B-A-C-D+D+C+B+C-C-C-D+C-B-B-B+
55Richard Harris-- WR460B-WRB-23C+B+D+B-C-D+C-D+D+C+D+C+B-
55Rick Long-- WR2525B+WRB+28C+B+D+B+C-D+A-B-C-D+D-A-C-B+A-B-B-
55Sam Seabron-- WR620B-WRB-26C-C-D+C+C+D-C+B+C-D+B+D+D+B-C+D+B+B+B-C+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
55Tag Toomay-- WR620WR24C-B+D+A-C-C-C-C-B-D+C+B+B+B-
55Tony Howell-- WR6647A-WRA-27A-B+B+D-D-D+D+D-D-B+A+C-B-C+
93A.D. Utt-- WR620KRB+26A-B-B-A-C-C-C+A-D-C+C-D-D-A-C-A-A-
93Bookie Hutson-- WR1412B+WRB+25B+B-B-B+A-A-D+A-D-D+D+D+C+A+B+C+
93Calvin Kauric-- WR620WR25C-B-C+B-C-D-B+B-D+D+C+D-D+B-B+A-C-B+
93Chris Gorinski-- WR845WR31C+B-B-A-B-B-C+B+B+C-C+D+D-D-D-B+B-A-
93Chris Johnson-- WR745B-WRB-28A-B-B+B-B-C+C-C+C-C-D-B-B+C+A-B-
93Chuck Caldwell-- WR1345B+WRB+28B-B-D+B+A-D+D+C-B+B-
93Chuck Peters-- WR1130B+WRB+24D+B-D-B-C-B+D+C+C-D-D-B-A+B-A-A+
93Clarence Gallagher-- WR417WR21D-B-C+B+D+D+C+C-D+D-D+C-B+C+A-B+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
93Fred McGrath-- WR620WR27B-B-C+B-D+B-C+D+C+D+C-B-B+B-B+
93J.W. Petitgout-- WR845WR31B-B-C+C+D+C+C-D+B-A-C+D+C+C-B-C+A-B+B+
93Jack Thomas-- WR9015A-WRA-21B-B-A-A-A-D-C-C-C-C-D+C-D+C+A+C-B+B-C-A-
93Jeff Schwartz-- WR845WR29B-C-D+D-D-D+B-D+D+D-A+C+A-B-
93Jim Ratterman-- WR535B-GUN23B-C+A-B+D+D+A-B-D+C+C+B-C+A-C+B+
93Jim Suhey-- WR620WR26B-C+A-B-B-B-C-D+C-D+C-B+C-B+C+B+
93Joe Slutzker-- WR938B+WRB+25B+B-C+D-B+B+D-B-A-B-D+D+D+C-C-B-D+A-A-A-A-
93Justin Mooney-- WR535B-KR24B+B-B-D+C+B-D-D-D-D-D-C+B+A-C-A-
93Larry Mumford-- WR837B+WRB+26B-C+C+C+C-B+D+C+D+D-C-B-B-B+A-B-
93Larry Pierotti-- WR2035B+WRB+22B-B-C+D+A+B-B-B-B-A-B+C+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
93Marques Rentz-- WR460GUN22C+B-B+D+D-C+C-B-B-D+D-D+D+B-B-A-A-A-B+
93Ray Berzinski-- WR633B+WRB+22D+B-B-C+A+B-C+B+D-C-D-C+C-B+A-B+B-
93Reggie Graham-- WR745B+WRB+26B-B-B+D+D-C+C-D+B-A+C+B+B+B+
93Tom Swanson-- WR620WR23B-C+C+B-B-D-C+B+D+B-D+D-D+C+B+B-C+B-B-
93Tommy Shanley-- WR654B+WRB+26B-B+B-D+A-D-B-B+C-D-B-D+D+B-B+B-
93Tony Larson-- WR837B+WRB+22C-B-C-B-D+D+B-B+D+C+D+A+C-A-B+
93Tory Feldhaus-- WR385WR21C+B-C+A-B-D+C+B-D+B-B+C-C+D-D+C+B-B+A-
93Walt Jackson-- WR743B+GUNB+21B-B-B-B-B-D-A+C-C-D+C+B-C+A-C+C+B-C+
119Bob Spillers-- WR620WR25C+B+C-C+D-C-B-D-D-C+D+C-D-D+D-B-A-C+B+
119Bourbon Mayhew-- WR845WR31B-C+B-D+D+D-A-B-D-D-C+A-C-B-
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
119Brian Holt-- WR1159B+WRB+25A-C+B+C-A-C+D-D+C-C-C+D-C-A-A+A-A-
119Carl Thornton-- WR745WR32B+C+C+C+D-C+A+D-C-D-D-D-D+C+C+C+B+A-
119Chad Lomasney-- WR460WR23C-C+C+C+D-B-B+D+D+D-D+C+C+A-B-
119Darryl Chilton-- WR837B+WRB+22A+C+B+C-B-B+D+B-D+B-C-B-B+B+A+C+
119David Blanda-- WR845B+WRB+32D+C+B-C-A-A-D+D-C-C-B+C+B+A-A-
119Don Bosworth-- WR2805B+WRB+21C+C+B+A-D+B+A-C+C-C+D+D-B-A-B+B-
119Erk Richardson-- WR620B-WRB-24C+C+B+C+C+B-C-C+B-C-D-B-C-D-C-B+D-B-B+D+A+B+A-
119Frank Kemoeatu-- WR620B-WRB-26D-C+B-B+C-B+D+D+D+D-C-C+D+B+B-
119George Hathcock-- WR620B-WRB-27C+C+B+B-D-C-C+B-C-D+B-A-C+C+A-B+
119Jack Johnson-- WR845B-WRB-32C-C+D+D-C+B+D+B-A-C+B-B+B-B+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
119Jeep Dieter-- WR745WR27B-C+C+B+A-D+D-B-D+D+C-D+B-A+C-A-B+B-B+
119John Simmons-- WR698WR25B-C+D+B-C+B-B+C-C-C-C-C-D+B-C+A-A-B-B+
119Libero Fowler-- WR10507A-WRA-21C-C+C+C-D+A-D+B-A+D+C+C-C-D-D+B-
119Mike Strong-- WR1446B+WRB+24C+A-D+C+D+B-C-C-D+D-C+A-D+A+
119Mike Wilson-- WR745WR32D-C+C+B-D+D-C+A-D+C+C-D+D-D-B-C-B+B+
119Mitchell Torkelson-- WR845WR32D+C+B-B-C-C-B-B+D+C-D-D-C-C+B+D+B+B-B+
119Paul Lee-- WR745WR27C+A-B-B+C-C-D-C+A+
119Raynoch Andrusyshyn-- WR535WR23A+C+C-C-B-A-D-C+B-C-D+C+B+C+B+A-B-
119Riddick Sazio-- WR7497A-WRA-21B-C+C-B+B-D+A+D-D+C-C-C+B+A+A-
140Bob Dempsey-- WR535WR26C+C+B-B-C+C-A-D-D+D+C+C-D+B+C+B+A-B+C+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
140Bobby Harris-- WR620WR26C-B-B-A-B+C-B-D+C+D-C-A-C-B-B+
140Bud Perina-- WR633WR20B+C-B-B+B-B-C-C+C+D-D+C+D-C+B+D+A+B+
140Carl Billock-- WR745WR27C-C+B-B-A-B+D+C+D+D+D+B-B+B-A-B+A-B+
140Derrick Miller-- WR845WR33B-C-C+C-D-C+D+B-D-D+C-B-B+A-B+
140Dutch Wall-- WR535WR22D-C+C+C-B-A-D+C+D+D-D+B-B+C-B+B-B+A-
140Jake Ruetz-- WR1625B+WRB+24C+A-D+B+C+D+C+A-D-D+C-C-D+D-D+A-B-B+B+
140Jim Scales-- WR845B-WRB-31B-C-B+C+C-C+C-D+C+B-B-D+B+C+B+B-
140John Humphrey-- WR310GUN21A-B+D-C+D-D+A-C-D+D+D-C-B-B+B-B-A-A-C+
140John Lawson-- WR698B+WRB+21B+A-C+C+D-B+A-C-B-C+C-D-B-B-B+A-C-A-A+C+
140Lyle Palermo-- WR745WR28C-B-A-C-A+C-D+D+C-B-B-C+C+C+B-B-B-
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
140Mike Hayes-- WR535B-WRB-23D-B+D-C+C-C-C-D+B+D+C-C-C+D-D-C+C+B+
140Paul Haley-- WR620B-KRBB-27B+C+D+B-C-B-B-B-C+D+C+C+D-B+B-A-B+C+
140Scott Guidry-- WR745B-WRB-27B-C-D-A-B-C-C-C+C-D-D-C-B-B+D+B-B-
140Travis Lewis-- WR620B-KR29C-B-A-D+D+C+B-D+C-D-A-D+B+A+B-
155Al Sapp-- WR2805B+WRB+23A+C-C+C-C+C-D-D+C-D-D+C+D+A-A+C+B+B+D+B+
155Chris McBride-- WR620WR26C-B-C+D+D+B-C-C+D-D+C+B+C-B+
155Del Blue-- WR633WR23A-C-C-C-D+A-B+D-C+B-D+B-B+B-
155Demetrius Heard-- WR1378B+WRB+26A-C-D-B+C-C-B+C-D+A+D+B+B+B-
155James Jackson-- WR862B+WRB+24C-D+C+C+A-A-D+C-D-D-C+B-B-A-B+C+
155Tim Gradishar-- WR845B-WRB-33C-C-C+C+D-B-C-B-D+D-C-D+D+B-B+B+B+
Rank Name Team Pos Sal Ovr BRole BOvr Age Pot Hlth Sta Att Agr Exe ThrP ThrA Crry Ctch PBlk RBlk PCov RCov Tkl Purs KP KA KR Spd Str Jmp Agl Hnd BrkT
161Doug Kiick-- WR745B-WRB-29D+B-C-D+D+A-B+B-B-C-C-D-D+C-C+D+C+A-
161Frank Milburn-- WR620B-WRB-26C-D+B+C+C+D-D+D-D+C-B+C+
Note: Players with the same Health rating are considered equal for ranking purposes.