Top 3 Players For Every Stat for Each NBA Team All Time (2024)

Quiz Lab

Quiz Lab

Sports

Sports Teams

Type in answers that appear in a list

Type in answers that appear in a list

Classic

Can you name the Top 3 Players For Every Stat for Each NBA Team All Time? Every current player will have an *, but it doesn't necessarily mean they are currently playing for that specific team. No players who primarily played in the ABA! *As of 2024

By Baarster

25m

450 Questions

290 Plays290 Plays

290 Plays

Comments

Give Quiz Kudos

Give Quiz Kudos

-

")$objective.click(() => {window.onClickObjective(reckoningQuestObjective.quest_number, reckoningQuestObjective.objective_number, reckoningQuestObjective.quest_id, reckoningQuestObjective.objective_id, $objective);});if (!window.mweb) {$j('#snark').hide();$objective.insertAfter($j('#gameOverMsg'));} else if (is_flagship_app_view) {$j('#snark').html();$objective.appendTo($j('#snark'));} else {$objective.appendTo($j('#reckoning .stats-wrapper'));}} else if (showSnark) {var snark = getSnark(userPct);var attachSnarkModalListener = false;if (snark !== '') {snark = ""+snark+"";if (!window.mweb) {if (false) {attachSnarkModalListener = true;snark += "";} else {snark += "";}}} else {$j('#snark').hide();}$j('#snark').html(snark);if(attachSnarkModalListener){ $j('#hide-snark-open-confirmation-modal').on('click', function () { var modalArgs = {title: 'Hide These Messages?',message: 'Are you sure you want to hide post-quiz messages?', onYes: function(remodal){ $j.ajax({ type: "GET", url: "/ajax/user_settings.php", data: {s: 0}, success: function(response) { if (response.success) { $j('#snark').hide(); remodal.close(); } else { if (response.responseJSON.message) { remodal.$modal.find('#confirmation-error').html(response.responseJSON.message); remodal.$modal.find('#confirmation-error').show(); } else { remodal.$modal.find('#confirmation-error').html('There was an error saving your preferences. Please contact feedback if you continue to see this issue.'); remodal.$modal.find('#confirmation-error').show(); } } }, error: function(response) { if (response.responseJSON.message) { remodal.$modal.find('#confirmation-error').html(response.responseJSON.message); remodal.$modal.find('#confirmation-error').show(); } else { remodal.$modal.find('#confirmation-error').html('There was an error saving your preferences. Please contact feedback if you continue to see this issue.'); remodal.$modal.find('#confirmation-error').show(); } } }); } }; SporcleLib.Modal._openConfirmationModal(modalArgs); }); }} else {$j('#snark').hide();}// Update get reckoning with playlist infovar playlistData;if (mweb) {playlistData = typeof window.playlist === 'object' && window.playlist.hasOwnProperty('games') ? window.playlist : null;} else {playlistData = window.Sporcle.gameData.playlist ? window.Sporcle.gameData.playlist.vm.data : null;}if (playlistData) {playlistReckoning(playlistData, userPct, false && !stopwatch);}$j('#playGameBar').addClass('reckoning');$j('#reckonBox').show();if (mweb) {/* mobile games only */$j('#reckoning-numright').html(numRight);$j('#reckoning-time').html(displayTime(timerSecs));if (stopwatch) {$j('#reckoning-time-title').text("Stopwatch");$j('#reckoning-time, #reckoning-score').addClass('timePast');}var checkToOpenFlorinPlayGoalModal = () => {if (userPct == 0) {return;}if (!florinsPlayGoalData) {return;}var openModal = false;if (florinsPlayGoalData.reward_claimable) {openModal = true;} else if (florinsPlayGoalData.curr_streak + 1 == florinsPlayGoalData.goal_days && florinsPlayGoalData.plays_today == 0) {// First play of the day, this should complete their play goalopenModal = true;}if (openModal) { window.SporcleLib.Modal.openFlorinPlayGoalModal({ // Fudge these values to be at the goal, since we haven't necessarily logged this play yet and it might be the 7th curr_streak : florinsPlayGoalData.goal_days, reward_claimable : true, plays_today : florinsPlayGoalData.plays_today + 1, goal_days : florinsPlayGoalData.goal_days, reward_amount : florinsPlayGoalData.reward_amount, })}}if (is_flagship_app_view) {let animations = window.animations;let hapticType = 'success';let completeMsg;let animConfig = {animationData : animations.checkmark,loop : true,playSegments : [[0, 30], [31, 75]]};if (userPct == 1) {animConfig.animationData = animations.perfectScore;animConfig.playSegments = [[0, 14], [15, 75]];completeMsg = "Perfect Score!";} else if (timerSecs == 0) {hapticType = 'error';animConfig.animationData = animations.outOfTime;animConfig.playSegments = [[0, 14], [15, 75]];completeMsg = "Out of Time!";} else if (_spks && !didGiveUp) {hapticType = 'error';animConfig.animationData = animations.bomb;animConfig.playSegments = [[0, 14], [15, 75]];completeMsg = "You Hit a Mine!";}window.SporcleLib.Modal.openModalFromTpl($j('#post-game-modal-tpl').html(), {show_loading : false,onInit : (modal) => {let $modal = modal.$modal; $modal.attr('id', 'postGameModal'); postGameAnim = lottie.loadAnimation({container : $modal.find('#postGameIcon')[0],animationData : animConfig.animationData,loop : animConfig.loop,autoplay : false});$modal.find('.modal-close').on('click', () => {window.continuePostQuiz();}); $modal.find('#completeMsg').html(completeMsg); $modal.find('#postPct').html(roundPercentScore(userPct));$modal.find('#postCorrect').html($j('#reckoning-score').text());if (snark) {$modal.find('#snark').html(snark);} else {$modal.find('#snark').hide();}setTimeout(() => {postGameAnim.playSegments(animConfig.playSegments, true);// if (hapticType) {// setTimeout(() => {// window.SporcleApp.api.playHaptic(hapticType);// }, 150);// }}, 150);},onClose : () => {// Need this delay because if we open a new modal right as the close animation finishes,// Then the modal events get confused and the "onOpen" callback never gets calledsetTimeout(() => {checkToOpenFlorinPlayGoalModal();}, 50);}});} else {checkToOpenFlorinPlayGoalModal();}}$j('#playGameBox').empty().hide();$j('#postGameBox').show();}function toggleshow() {showans = !showans;}function roundPercentScore(pctScore) {return _.round(100 * pctScore);}function updateBadge(userPct) {var earned = false;if (quizBadge && userPct > 0) { if (quizBadge.criteria && quizBadge.criteria.length) { var requiredCount = quizBadge.criteria.length; var earnedCount = 0; //Loop through possible badge criteria to see if we earned them quizBadge.criteria.forEach(function (criterion) { var comparison = parseInt(criterion.compare); if(criterion.name === 'percent'){ if ((comparison === 0 && userPct === parseFloat(criterion.value)) || //'0' means percent needs to equal (comparison === 1 && userPct > parseFloat(criterion.value)) || //'1' means percent needs to be greater than (comparison === -1 && userPct < parseFloat(criterion.value)) //'-1' means percent needs to be less than (at the time of writing, no badge exists like this) ) { earnedCount++; } } else if (criterion.name === 'month'){ var d = new Date(); //getMonth() starts at 0 if((d.getMonth() + 1 == criterion.value && comparison === 0) || (d.getMonth() + 1 > criterion.value && comparison === 1) || (d.getMonth() + 1 < criterion.value && comparison === -1) ){ earnedCount++; } } else if (criterion.name === 'day'){ var d = new Date(); if((d.getDate() == criterion.value && comparison === 0) || (d.getDate() > criterion.value && comparison === 1) || (d.getDate() < criterion.value && comparison === -1) ){ earnedCount++; } } else if (criterion.name === 'day_of_the_week'){ var d = new Date(); if((d.getDay() == criterion.value && comparison === 0) || (d.getDay() > criterion.value && comparison === 1) || (d.getDay() < criterion.value && comparison === -1) ){ earnedCount++; } } else if (criterion.name === 'avg_percent' && typeof averageScore !== 'undefined') {var roundedUserPct = _.round(userPct, 2); //matches backend precision in badge trackervar roundedAvgPct = _.round(averageScore, 2);if((roundedUserPct == roundedAvgPct && comparison === 0) || (roundedUserPct > roundedAvgPct && comparison === 1) || (roundedUserPct < roundedAvgPct && comparison === -1) ){ earnedCount++; } }}); earned = earnedCount == requiredCount;} else {earned = true;}} if (earned) {quizBadge.condition_earned = true;quizBadge.achieved_count++; var spliceIndex = null;_(quizBadge.remaining_conditions).each(function(condition, index) {if (quizBadge.condition_id == condition.condition_id) {spliceIndex = index;}});_(quizBadge.conditions).each(function(condition, index) {if (quizBadge.condition_id == condition.condition_id) {condition.earned = true;}});if (spliceIndex !== null) {quizBadge.remaining_conditions.splice(spliceIndex, 1); quizBadge.condition_earned_date = (new Date()).toLocaleDateString(undefined, { year: 'numeric', month: 'long', day: 'numeric' });; }if (quizBadge.remaining_conditions.length === 0 ) {if (quizBadge.badge_earned && quizBadge.levelable) {quizBadge.achieved_count = 0;quizBadge.level++;var currDate = new Date();quizBadge.last_level_date = window.SporcleLib.getMonthString(currDate.getMonth()) + ' ' + currDate.getDate() + ', ' + currDate.getFullYear();} else {quizBadge.badge_earned = true;var currDate = new Date();quizBadge.earned_date = window.SporcleLib.getMonthString(currDate.getMonth()) + ' ' + currDate.getDate() + ', ' + currDate.getFullYear();if (quizBadge.levelable) {quizBadge.level = 1;quizBadge.last_level_date = window.SporcleLib.getMonthString(currDate.getMonth()) + ' ' + currDate.getDate() + ', ' + currDate.getFullYear();quizBadge.achieved_count = 0;}}}if (badgeTooltip) {badgeTooltip.deactivate();}if (badgeTooltipRightRail) {badgeTooltipRightRail.deactivate();}var template = _.template($j('#quiz-badge-template').html());if (window.mweb) {$j('#main-wrapper .quiz-badge').replaceWith($j(template(quizBadge)));} else {quizBadge.tooltip_trigger_id = 'quiz-badge-art';$j('#main-quiz-content .quiz-badge').replaceWith($j(template(quizBadge)));quizBadge.tooltip_trigger_id = 'quiz-badge-art-right-rail';$j('#right-rail .quiz-badge').replaceWith($j(template(quizBadge)));if (!quizBadge.badge_earned) {if (window.setupUnearnedBadgeTooltip) {window.setupUnearnedBadgeTooltip($j('#quiz-badge-art'), quizBadge);window.setupUnearnedBadgeTooltip($j('#quiz-badge-art-right-rail'), quizBadge);} else {var conditionsTemp = _.template($j('#badge-conditions-template').html());var tooltipHtml = $j(conditionsTemp(quizBadge));const badgeTooltipOptions = { //this should match /sporcle-ui/tooltips/functionalTooltipstarget : true,tipJoint : 'bottom middle',showOn : 'mouseover',hideTriggers : ['target','tip'],stemLength : 8,stemBase : 12,hideOn : 'mouseout',removeElementsOnHide : true,background : 'white',borderColor : '#d8d8d8',borderWidth : 1,shadowOffset : [3,3],shadowBlur : 10,showEffect : 'slide',showEffectDuration : 0.1,hideEffectDuration : 0.3,className : 'badge-tooltip',shadowColor : 'rgba(0,0,0,0.25)'};badgeTooltip = new Opentip('#quiz-badge-art', tooltipHtml.html(), badgeTooltipOptions);badgeTooltipRightRail = new Opentip('#quiz-badge-art-right-rail', tooltipHtml.html(), badgeTooltipOptions);}} else {if (window.setupEarnedBadgeTooltip) {window.setupEarnedBadgeTooltip($j('#quiz-badge-art'), quizBadge);window.setupEarnedBadgeTooltip($j('#quiz-badge-art-right-rail'), quizBadge);}}}}}function showHintTooltip(x, y, hint) {$hint = $j('#hintTooltip');if ($hint.length == 0) {$hint = $j('

' +'

' +'

' +'

' +'

' +'

').appendTo($j('body'));}if (hint) {var $afterContainer = $hint.find('.afterContainer');var $after = $hint.find('.after');// Set to max width before resize$afterContainer.css({width: '120px'});$hint.show();// Set tooltip text to hint$after.html(hint);// Get width of tooltip with textvar width = Math.ceil($after[0].offsetWidth) + 1;var leftShift = 0;if (mweb) {// Make sure the tooltip doesn't go off either side of the screenvar leftBound = 51;var rightBound = $j('body').width() - 71;var buf = 11;// Shift based on width of textvar shiftLimit = Math.max(width/2 - 20, 0);if (x < leftBound) {// Too close to left edge of screenleftShift = -shiftLimit;x = Math.max(x, buf);} else if (x > rightBound) {// Too close to right edge of screenleftShift = shiftLimit;x = Math.min(x, $j('body').width() - buf);}}// Set the position of the hint$hint.css({left: x + 'px',top: y + 'px',});// Set outer container size and position$afterContainer.css({width: width + 'px',left: '-' + ((width / 2) + leftShift) + 'px'});} else {$hint.hide();}}function getRandomColor() {var r = Math.round(Math.random() * 255);var g = Math.round(Math.random() * 255);var b = Math.round(Math.random() * 255);return 'rgb(' + r + ',' + g + ',' + b + ')';}function hintTooltipIsDisplayed() {return $j('#hintTooltip').is(':visible');}function getCurrentHintText() {return $j('#hintTooltip .afterContainer .after').text();}// This is used to yield execution to the main javascript thread so that we can break longer running tasks into smaller tasks.// See here: https://web.dev/articles/optimize-long-tasks?utm_source=devtoolsfunction yieldToMain () {return new Promise(resolve => {setTimeout(resolve, 0);});}async function runStartCode(stopwatch) {if (typeof gamePageIsLoaded != "undefined" && gamePageIsLoaded) {if (window.startTriggered) {return;} else {window.startTriggered = true;}if (typeof stopwatch !== 'undefined') {if (stopwatch) {window.selectTimerSetting('stopwatch');} else {window.selectTimerSetting('timer');}}// The `startGame` function does a lot, so we want to yield execution both before and after this call. Yielding before// will allow the existing task to finish, freeing up the runtime to move to the next thing in the message queue before startGame// executes. Yielding after will do the same, before we perform the rest of the actions related to starting a quiz.await yieldToMain();await startGame(1500);await yieldToMain();callSPHooks('postStart');}}function callSPHooks(name) {if (typeof _spHooks != 'undefined') {var hlen = _spHooks[name].length;for (var i = 0; i < hlen; i++) {_spHooks[name][i]();}}}

0/450

Quiz is untimed. Quiz plays in practice mode will not be counted towards challenge completion or badge progress.

25:00

Atlanta Hawks Point Leaders
23292
20880
16049
Atlanta Hawks Assist Leaders
3868*
3866
3764
Atlanta Hawks Rebound Leaders
12849
8656
7332
Atlanta Hawks Steal Leaders
1321
1245
1166
Atlanta Hawks Block Leaders
2283
1440
1094
Boston Celtics Point Leaders
26395
24021
21791
Boston Celtics Assist Leaders
6945
6114
5695
Boston Celtics Rebound Leaders
21620
11051
10170
Boston Celtics Steal Leaders
1583
1556
990
Boston Celtics Block Leaders
1703
1690
755
Brooklyn Nets Point Leaders
10444*
10440
8834
Brooklyn Nets Assist Leaders
4620
2363
2078
Brooklyn Nets Rebound Leaders
7576
4005*
3690
Brooklyn Nets Steal Leaders
950
875
803
Brooklyn Nets Block Leaders
972*
863
696
Charlotte Hornets Point Leaders
12009
9839
7437
Charlotte Hornets Assist Leaders
5557
3308
2573
Charlotte Hornets Rebound Leaders
3516
3479
3398
Charlotte Hornets Steal Leaders
1067
827
799
Charlotte Hornets Block Leaders
684
621
607*
Chicago Bulls Point Leaders
29277
15123
12623
Chicago Bulls Assist Leaders
5012
4494
3811
Chicago Bulls Rebounds Leaders
5836
5745
5726
Chicago Bulls Steal Leaders
2306
1792
857
Chicago Bulls Block Leaders
1029
828
803
Cleveland Cavaliers Point Leaders
23119*
10616
10389
Cleveland Cavaliers Assist Leaders
6228*
4206
2311
Cleveland Cavaliers Rebound Leaders
6190*
5904
5567*
Cleveland Cavaliers Steal Leaders
1376*
734
722
Cleveland Cavaliers Block Leaders
1269
1200
1087
Dallas Mavericks Point Leaders
31560
16643
13930
Dallas Mavericks Assist Leaders
5111
4524
4211
Dallas Mavericks Rebound Leaders
11489
4589
3767
Dallas Mavericks Steal Leaders
1551
1210
954
Dallas Mavericks Block Leaders
1281
1250
615
Denver Nuggets Point Leaders
21645
16589
14139*
Denver Nuggets Assist Leaders
4667*
3679
3566
Denver Nuggets Rebound Leaders
7249
6630
4811
Denver Nuggets Steal Leaders
1167
1070
854
Denver Nuggets Block Leaders
1486
1126
830
Detroit Pistons Point Leaders
18822
16401
15488
Detroit Pistons Assist Leaders
9061
4612
4330
Detroit Pistons Rebound Leaders
9430
8199*
8063
Detroit Pistons Steal Leaders
1861
931
902
Detroit Pistons Block Leaders
1486
1070
927*
Golden State Warriors Point Leaders
23668*
17783
16447
Golden State Warriors Assist Leaders
6119*
4855
4565*
Golden State Warriors Rebounds Leaders
12771
10768
6440
Golden State Warriors Steal Leaders
1473*
1360
1084*
Golden State Warriors Block Leaders
1140
836
818
Houston Rockets Point Leaders
26511
18365*
17949
Houston Rockets Assist Leaders
4796*
4402
3339
Houston Rockets Rebound Leaders
13382
6974
6959
Houston Rockets Steal Leaders
2088
1165
1087*
Houston Rockets Block Leaders
3740
920
758
Indiana Pacers Point Leaders
25279
12871
10780
Indiana Pacers Assist Leaders
4141
4038
3284
Indiana Pacers Rebound Leaders
6006
5277
5248
Indiana Pacers Steal Leaders
1505
885
740*
Indiana Pacers Block Leaders
1268*
1245
1111
Los Angeles Clippers Point Leaders
12735
10863
9434
Los Angeles Clippers Assist Leaders
4023*
3498
2810
Los Angeles Clippers Rebound Leaders
7988*
4710
4686
Los Angeles Clippers Steal Leaders
1072
902*
747
Los Angeles Clippers Block Leaders
1277*
1117
1039
Los Angeles Lakers Point Leaders
33643
25192
24176
Los Angeles Lakers Assist Leaders
10141
6306
6238
Los Angeles Lakers Rebound Leaders
11463
10279
Kobe Bryant
Los Angeles Lakers Steal Leaders
1944
1724
1041
Los Angeles Lakers Block Leaders
2694
1278
1022
Memphis Grizzlies Point Leaders
11733*
11684
9261
Memphis Grizzlies Assist Leaders
4509*
2639
2069
Memphis Grizzlies Rebound Leaders
5942
5612
4096
Memphis Grizzlies Steal Leaders
1161*
796
708
Memphis Grizzlies Block Leaders
1135
877
664*
Miami Heat Point Leaders
21556
9459
9248
Miami Heat Assist Leaders
5310
2867
2034
Miami Heat Rebound Leaders
5791
4807
4544
Miami Heat Steal Leaders
1492
791
666
Miami Heat Block Leaders
1625
812
783
Milwaukee Bucks Point Leaders
18502*
14211
12296*
Milwaukee Bucks Assist Leaders
3855*
3272
2888*
Milwaukee Bucks Rebound Leaders
7732*
7161
4497
Milwaukee Bucks Steal Leaders
1042
903*
894
Milwaukee Bucks Block Leaders
986*
842*
804
Minnesota Timberwolves Point Leaders
19201
13121*
8710*
Minnesota Timberwolves Assist Leaders
4216
3424
1973
Minnesota Timberwolves Rebound Leaders
10718
6216*
4453*
Minnesota Timberwolves Steal Leaders
1315
845
502
Minnesota Timberwolves Block Leaders
1590
721*
489
New Orleans Pelicans Point Leaders
11059*
8690
7936*
New Orleans Pelicans Assist Leaders
4228*
2833*
1487*
New Orleans Pelicans Rebound Leaders
4906*
3853
2675
New Orleans Pelicans Steal Leaders
1010*
639*
638*
New Orleans Pelicans Block Leaders
1121*
435
305
New York Knicks Point Leaders
23665
14617
12183
New York Knicks Assist Leaders
4791
4005
2950
New York Knicks Rebound Leaders
10759
8414
7291
New York Knicks Steal Leaders
1061
844
810
New York Knicks Block Leaders
2758
602*
543
Oklahoma City Thunder Point Leaders
18859*
18207
17566*
Oklahoma City Thunder Assist Leaders
7384
6897*
4893
Oklahoma City Thunder Rebound Leaders
7729
5978
5760*
Oklahoma City Thunder Steal Leaders
2107
1544
1442*
Oklahoma City Thunder Block Leaders
1300
959
705
Orlando Magic Point Leaders
11435
10650
10423*
Orlando Magic Assist Leaders
3501
2776
2555
Orlando Magic Rebound Leaders
8072
6381*
3691
Orlando Magic Steal Leaders
1004
830
718
Orlando Magic Block Leaders
1344
824
550*
Philadelphia 76ers Point Leaders
21586
19931
18438
Philadelphia 76ers Assist Leaders
6212
4540
4385
Philadelphia 76ers Rebound Leaders
11256
9506
7079
Philadelphia 76ers Steal Leaders
1942
1644
1508
Philadelphia 76ers Block Leaders
1293
1131
926
Phoenix Suns Point Leaders
15666
14529*
13910
Phoenix Suns Assist Leaders
6997
6518
4012
Phoenix Suns Rebound Leaders
6937
6616
4613
Phoenix Suns Steal Leaders
1289
1245
1040
Phoenix Suns Block Leaders
940
897
894
Portland Trail Blazers Point Leaders
19376*
18040
12562
Portland Trail Blazers Assist Leaders
5319
5151*
4933
Portland Trail Blazers Rebound Leaders
5434
5339
5078
Portland Trail Blazers Steal Leaders
1795
1182
1059
Portland Trail Blazers Block Leaders
768
726
693
Sacramento Kings Point Leaders
22009
15840
12070
Sacramento Kings Assist Leaders
7731
3563
3499
Sacramento Kings Rebound Leaders
9353
8876
6380
Sacramento Kings Steal Leaders
950
717
670
Sacramento Kings Block Leaders
1098
697
695
San Antonio Spurs Point Leaders
26496
23602
20790
San Antonio Spurs Assist Leaders
6829
4474
4225
San Antonio Spurs Rebound Leaders
15091
10497
4841
San Antonio Spurs Steal Leaders
1392
1388
1159
San Antonio Spurs Block Leaders
3020
2954
938
Toronto Raptors Point Leaders
13296*
10540*
10275
Toronto Raptors Assist Leaders
4277*
3770
2199*
Toronto Raptors Rebound Leaders
4776
3961*
3324*
Toronto Raptors Steal Leaders
873*
664
655*
Toronto Raptors Block Leaders
600
480
479*
Utah Jazz Point Leaders
36374
19711
13635
Utah Jazz Assist Leaders
15806
5085
4159
Utah Jazz Rebound Leaders
14601
7119*
6939
Utah Jazz Steal Leaders
3265
2035
1100
Utah Jazz Block Leaders
3064
1380
1357*
Washington Wizards Point Leaders
15551
15391*
11083
Washington Wizards Assist Leaders
5282*
3822
2972*
Washington Wizards Rebound Leaders
13769
9305
7243
Washington Wizards Steal Leaders
976*
772*
762
Washington Wizards Block Leaders
1558
1051
908
Top 3 Players For Every Stat for Each NBA Team All Time (2024)
Top Articles
Latest Posts
Article information

Author: Pres. Lawanda Wiegand

Last Updated:

Views: 5821

Rating: 4 / 5 (51 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Pres. Lawanda Wiegand

Birthday: 1993-01-10

Address: Suite 391 6963 Ullrich Shore, Bellefort, WI 01350-7893

Phone: +6806610432415

Job: Dynamic Manufacturing Assistant

Hobby: amateur radio, Taekwondo, Wood carving, Parkour, Skateboarding, Running, Rafting

Introduction: My name is Pres. Lawanda Wiegand, I am a inquisitive, helpful, glamorous, cheerful, open, clever, innocent person who loves writing and wants to share my knowledge and understanding with you.