by   Ranker
Staff
in Data, Data Science, Entertainment, Opinion Graph, Pop Culture

A Ranker Word of Comedy Opinion Graph: Who Connects the Funny Universe?

In the previous post, we showed how a Gephi layout algorithm was able to capture different domains in the world of comedy across all of the Ranker lists tagged with the word “funny”.  However, these algorithms also give us information about the roles that individuals play within clusters. The size of the node indicates that node’s ability to connect other nodes, so bigger nodes indicate individuals who serve as a gateway between different nodes and categories.  These are the nodes that you would want to target if you wanted to reach the broadest audience, as people who like these comedic individuals also like many others.  Sort of like having that one friend who knows everyone send out the event invite instead of having to send it to a smaller group of friends in your own social network and hoping it gets around. So who connects the comedic universe?

The short answer: Dave Chappelle (click to enlarge)

Chappelle

Dave Chappelle is the superconnector. He has both the largest number of direct connections and the largest number of overall connections. If you want to reach the most people, go to him. If you want to connect people between different kinds of comedy, go to him.  He is the center of the comedic universe. He’s not the only one with connections though.

Top 10 Overall Connectors

  1. Dave Chappelle 
  2. Eddie Izzard 
  3. John Cleese 
  4. Ricky Gervais
  5. Rowan Atkinson
  6. Eric Idle
  7. Billy Connolly
  8. Bill Hicks
  9. It’s Always Sunny In Philadelphia
  10. Sarah Silverman

 

We can also look at who the biggest connectors are between different comedy domains.

  • Contemporary TV Shows: It’s Always Sunny in Philadelphia, ALF, and The Daily Show are the strongest connectors. They provide bridges to all 6 other comedy domains.
  • Contemporary Comedians on American Television: Dave Chappelle, Eddie Izzard and Ricky Gervais are the strongest connectors. They provide bridges to all 6 other comedy domains.
  •  Classic Comedians: John Cleese and Eric Idle are the strongest connectors. They provide bridges to all 6 other comedy domains.
  • Classic TV Shows: The Muppet Show and Monty Python’s Flying Circus are the strongest connectors. They provide bridges to Classic TV Comedians, Animated TV shows, and Classic Comedy Movies.
  • British Comedians: Rowan Atkinson is the strongest connector. He serves as a bridge to all of the other 6 comedy domains.
  • Animated TV Shows: South Park is the strongest connector. It serves as a bridge to Classic Comedians, Classic TV Shows, and British Comedians.
  • Classic Comedy Movies: None of the nodes in this domain were strong connectors to other domains, though National Lampoon’s Christmas Vacation was the strongest node in this network.

 

– Kate Johnson

A Ranker Opinion Graph of the Domains of the World of Comedy

One unique aspect of Ranker data is that people rank a wide variety of lists, allowing us to look at connections beyond the scope of any individual topic.  We compiled data from all of the lists on Ranker with the word “funny” to get a bigger picture of the interconnected world of comedy.  Using Gephi layout algorithms, we were able to create an Opinion Graph which categorizes comedy domains and identify points of intersection between them (click to make larger).

all3sm

In the following graphs, colors indicate different comedic categories that emerged from a cluster analysis, and the connecting lines indicate correlations between different nodes with thicker lines indicating stronger relationships.  Circles (or nodes) that are closest together are most similar.  The classification algorithm produced 7 comedy domains:

 

CurrentTVwAmerican TV Shows and Characters: 26% of comedy, central nodes =  It’s Always Sunny in Philadelphia, ALF, The Daily Show, Chappelle’s Show, and Friends.

NowComedianwContemporary Comedians on American Television: 25% of nodes, includes Dave Chappelle, Eddie Izzard, Ricky Gervais, Billy Connolly, and Bill Hicks.

 

ClassicComedianswClassic Comedians: 15% of comedy, central nodes = John Cleese, Eric Idle, Michael Palin, Charlie Chaplin, and George Carlin.

ClassicTVClassic TV Shows and Characters: 14% of comedy, central nodes = The Muppet Show, Monty Python’s Flying Circus, In Living Color, WKRP in Cincinnati, and The Carol Burnett Show.

BritComwBritish Comedians: 9% of comedy, central nodes = Rowan Atkinson, Jennifer Saunders, Stephen Fry, Hugh Laurie, and Dawn French.

AnimwAnimated TV Shows and Characters: 9% of comedy, central nodes = South Park, Family Guy, Futurama, The Simpsons, and Moe Szyslak.

MovieswClassic Comedy Movies: 1.5% of comedy, central nodes = National Lampoon’s Christmas Vacation, Ghostbusters, Airplane!, Vacation, and Caddyshack.

 

 

Clusters that are the most similar (most overlap/closest together):

  • Classic TV Shows and Contemporary TV Shows
  • British Comedians and Classic TV shows
  • British Comedians and Contemporary Comedians on American Television
  • Animated TV Shows and Contemporary TV Shows

Clusters that are the most distinct (lest overlap/furthest apart):

  • Classic Comedy Movies do not overlap with any other comedy domains
  • Animated TV Shows and British Comedians
  • Contemporary Comedians on American Television and Classic TV Shows

 

Take a look at our follow-up post on the individuals who connect the comedic universe.

– Kate Johnson

 

by   Ranker
Staff
in Data Science, prediction, Rankings

Cognitive Models for the Intelligent Aggregation of Lists

Ranker is constantly working to improve our crowdsourced list algorithms, in order to surface the best possible answers to the questions on our site.  As part of this effort, we work with leading academics who research the “wisdom of crowds”, and below is a poster we recently presented at the annual meeting for the Association for Psychological Science (led by Ravi Selker at the University of Amsterdam and in collaboration with Michael Lee from the University of California-Irvine).

While the math behind the aggregation model may be complex (a paper describing it in detail will hopefully be published shortly), the principle being demonstrated is relatively simple.  Specifically, aggregating lists using models that take into account the inferred expertise of the list maker outperform simple averages, when compared to real-world ground truths (e.g. box office revenue).  While Ranker’s algorithms for determining our crowdsourced rankings may be similarly complex, they are similarly designed to produce the best answers possible.

 

cognitive_model_aggregating_lists

 

– Ravi Iyer

by   Ranker
Staff
in Data, Data Science, Opinion Graph

A Ranker Opinion Graph of Important Life Goals

What does it mean to be successful, and what life goals should we be setting in order to get there? Is spending time with family most important? What about your career?  We asked people to rank their life goals in order of importance on Ranker, and using a layout algorithm (force atlas in Gephi), we were able to determine goal categories and organized these goals into a layout which placed goals most closely related nearer to each other.

The connecting lines in the graph represent significant correlations or relationships between different life goals, with thicker lines indicating stronger relationships.  The colors in the graph differentiate between unique groups that emerged from a cluster analysis.  Click on the below graph to expand it.

all_black

The classification algorithm produced 5 main life goal clusters:
(1) Religion/Spirituality (e.g., Christian values, achieving Religion & Spirituality),
(2) Achievement and Material Goods (e.g., being a leader, avoiding failure, having money/wealth),
(3) Interpersonal Involvement/Moral Values (e.g., sharing life, doing the right thing, being inspiring),
(4) Personal Growth (e.g., achieving wisdom & serenity, pursuing ideals and passions, peace of mind), and
(5) Emotional/Physical Well-Being (e.g., being healthy, enjoying life, being happy).

These clusters are well matched to those identified by Robert Emmon’s (1999) psychological research on goal pursuit and well-being. Emmon’s found that life goals form 4 primary categories: work and achievement, relationships and intimacy, religion and spirituality, and generativity (leaving legacy/contributing to society).

However, not all goals are created equal.  While success related goals may be able to help us get ahead in life, they also have downsides.   People who focus on zero-sum goals such as work and achievement tend to report less happiness and life satisfaction compared to people who pursue goals. Our data also show a large divide between Well-being and Work/Achievement goals with relatively no overlap between these two groups.

Other interesting relationships in our graph:

  • Goals related to moral values (e.g., doing the right thing) were clustered with (and therefore more closely related to) interpersonal goals than they were to religious goals.
  • Sexuality was related to goals from opposite ends of the space in unique ways. Well-being goals were related to sexual intimacy whereas Achievement goals were related to promiscuity.
  • While most goal clusters were primarily made up of goals for pursuing positive outcomes, the Achievement/Material Goods goal cluster also included the most goals related to avoiding negative consequences (e.g., avoiding failure, avoiding effort, never going to jail).
  • Our Personal Growth goal cluster is unique from many of the traditional goal taxonomies in the psychological literature, and our data did not find the typical goal cluster related to Generativity. This may show a shift in goal striving from community growth to personal growth.

– Kate Johnson

Citation: Emmons, R. A. (1999). The psychology of ultimate concerns: Motivation and spirituality in personality. New York: Guilford Press.

 

by   Ranker
Staff
in Data, Data Science, Entertainment, Opinion Graph, Pop Culture, Trends

Changes in Opinion for House of Cards, The Walking Dead, Mad Men, & Workaholics

One of the coolest things about Ranker is the fact that Ranker votes are recorded in real time as they happen, allowing the potential for it to track changes in people’s opinions. A list like, “The Best Shows Currently on Air” generates heavy traffic due to the popularity of television shows on air and online. A certain television show can amass an impressive, almost cult-like, following and it’s interesting to see how public opinions change over time, why, and if it corresponds to changes happening in the real-world.

The figure below shows the pattern of change in the proportion of up-votes for the TV shows in this list, and highlights four shows: House of Cards, The Walking Dead, Mad Men, and Workaholics.

tv_show_house_of_cards_change

There is a steep decline in the proportion of up votes in December of 2013 for the House of Cards. Interestingly, this was during an interim period between seasons where seemingly nothing significant relating to the show was occurring. A plausible explanation could be due to a ceiling effect as there were few up votes and no down votes until that time. When a show first gets on a Ranker list, it often is only voted on by the fans of that show. As the show is only accessible through Netflix, the viewing audience is significantly smaller than cable or network Television shows, so that may further skew the number of people who knew enough about the show to consider downvoting it. Fascinatingly enough, in the same month, during a televised meeting with tech industry CEOs on NSA surveillance, President Obama expressed his love for the show stating “I wish things were that ruthlessly efficient,” adding that Rep. Frank Underwood, played by Kevin Spacey, “is getting a lot of stuff done”. Could the increase in downvotes be due to certain members of the public expressing their opinions about the President through the voting patterns on The House of Cards on Ranker?
The entire second season of The House of Cards was released on February 14th on Netflix in the same binge-watching format as the first season, which garnered positive reviews. Interestingly, there is a significant decline in proportion of up votes for The House of Cards from February 2014 to April 2014, however viewership of season two was much higher than season one based on early reviews. The show also garnered critical acclaim for season two earning thirteen Primetime Emmy Award nominations for the 66th Primetime Emmy Awards, and three nominations at both the 72nd Golden Globe Awards and the 21st Screen Actors Guild Awards. Given the viewership ratings and critical success, it may seem surprising to see such a steep drop in votes. But in looking at Ranker data, it is often common for shows to get more downvotes over time as they get better known, as people rarely downvote things they haven’t heard of, even as a show also receives more upvotes. This is why our algorithms take into account both the volume and proportion of upvotes vs. downvotes.
Shows that are more readily accessible may exhibit less of a ceiling effect early on, as there is a greater likelihood of people watching the show who aren’t specifically looking for it. Looking at Mad Men and The Walking Dead, there is a steady increase in up-vote proportion over the span that votes were submitted from June 2013 to last month, April 2015. The Walking Dead is the most watched drama series telecast in basic cable history, making it reasonable to assume that the reason for the continual increases are due to the increasing number of fans of the show who vote for it as the “Best Show Currently on Air”. Mad Men fans had similar voting patterns.

For a show like Workaholic, which airs on Comedy Central, there is a significantly smaller viewing audience compared to national networks, and they do not have the fanbase power of House of Cards or The Walking Dead. However, it is a show with positive reviews and a steady following of loyal fans. Though it is not as popular as other shows airing, it’s proven to be a show with comedic talent that generates positive sentiments amongst its viewers and a growing proportion of up-votes.
While these examples are only suggestive, the enormous number of votes made by Ranker uses, and the variety of topics they cover, makes the possibility of measuring opinions, and detecting and understanding change in opinions, an intriguing one that is worth continuing to expand upon.
-Emily Liu

by   Ranker
Staff
in Popular Lists

Will 2015 be the year that better data eclipses bigger data?

Data is a tool, not an end, but understandably, some people are really into their tools. They like to describe how many petabytes zettabytes their data takes up every second picosecond, requiring even more tools that allow them to analyze that data ever faster. It’s very very cool. But just like the engines on those lamborghinis I see idling in Los Angeles traffic on the way to the office, I have to question how truly useful all that engineering is.

Do we really need zettabytes of data to produce the insight that I might, in my weaker moments, click on a link advertising photos of singles in my area or detaling “13+ Things You Shouldn’t Eat in a Restaurant”? [ these are actual headlines served by content recommendation companies that leverage enormous datasets on web behavior] Does Facebook really need all my likes, interests, and friends to know to serve me clickbait or is the single biggest predictor of whether I might generate a click for an advertiser the fact that I have enjoyed clickbait in the past?  If 8% of internet users account for 85% of banner ad clicks, how effective can the plethora of data scientists who work on advertising actually be, over and above a simple cookie that identifies that 8% and removes banner ads for everyone else?

Rather than simply declaring, in rather cliched form, that “big data is dead”, I have a solution: Better Data.  If I want to know what to buy my wife for Christmas, I can analyze everything she has done on the internet for the past 10 years…or I could just ask her.  If I want to know who is going to win the world cup, I could analyze the statistics of every player and team in every situation and create an algorithm that scores their collective talents…or I could just ask people who they think will win.  Small datasets with rich variables that incorporate lots of information intelligently (e.g. stock prices) almost always out-perform complex algorithms performed on low-level datasets.

Evidence for this is found not only in the fact that algorithms cannot reliably beat the stock market (though they can make money by beating slower, dumber algorithms), but that the world’s biggest companies like Google, Facebook, and Baidu are emphasizing “Deep Learning” artificial intelligence as primary initiatives.  Deep learning attempts to encode the patterns hiding in lots of low level data points (e.g. pixel colors) into higher-order variables that human beings find meaningful (e.g. a cat or a smiling friend), effectively creating better smaller datasets.  The excitement over deep learning is an acknowledgment that zettabytes of data yield far less meaningful information about a person than the average human can get from a 15 minute conversation.  Deep learning may someday allow Google to read our email with the same sophistication as a human, but the average toddler still far outpaces the most sophisticated deep learning algorithms. And it still needs good data to be trained on.  It will never be able to take all the videos ever uploaded onto YouTube and predict much variance in the direction of the stock market because the data is not there. If you want to predict the stock market, you need better data on companies.  If you want to predict what a person will buy or better yet, what really motivates them, you need to ask them questions about what motivates them.

How can we create better datasets?  Think less like an engineer and more like someone writing a biography.  Rather that trying ever more technological solutions to squeeze knowledge from a stone, think about what is missing in our understanding of the average person.  If, through some combination of deep learning and data aggregation, I am able to fully understand 1% or 25% or 100% of a person’s online behavior, I still will only understand that part of their world that is revealed through their online behavior.  How can we start to ask people what their most meaningful moments from college were, what annoys them most, or what makes them happiest in their quiet moments?  Dating sites probably have some of the best data around because they ask meaningful questions, even given the relatively low number of people who use those sites as compared to Gmail or Facebook, and the sharpness of the insights that they are able to produce is no accident.  The OK Cupid blog (better data) will always be more interesting than the Facebook data blog (bigger data) until Facebook is able to collect data more meaningful than the generic “like”.

2015 is an exciting time to be working on data.  Tools are more accessible than ever, such that many engineers can find a tutorial and learn to run any algorithm in a weekend.  Data is more ubiquitous and accessible than ever as well. But the world doesn’t need yet another company that takes publicly accessible data and mines it for sentiment, while throwing off stats about how big their data is.  Think like a biographer,  figure out what nobody else is asking and create meaningful data.

– Ravi Iyer

by   Ranker
Staff
in Opinion Graph, Ranker Comics

A Cluster Analysis of the Superpower Opinion Graph produces 5 Superhero types

If you could have one superpower, which would you choose?  Data from the Ranker list “Badass Superpowers We’d Give Anything to Have” improves on the age-old classroom ice breaker question by letting people rank all of the superpowers in order of how much they would want them.  Because really, unless you’re one of the X-men, you probably would have more than one power. So, if you could have a collection of superpowers, what kind of superhero would you be?

Using Gephi and data from Ranker’s Opinion Graph, we ran a cluster analysis on people’s votes on the superpowers list to determine what groupings of superpowers different people wanted.

This analysis grouped superpowers into 5 clusters, which we interpreted to represent unique superhero types.

 

The Overall Superpower Opinion Graph

Allpowers

 

 

The 5 Types of Superheroes

    god

1. The Creationist God: This superhero type is characterized by creation and destruction, Old-Testament Christian God-style. Notable superpowers: the ability to create/destroy worlds, die and come back to life, have gods’ weapons (Thor’s Hammer, Zeus’ Thunderbolt), remove others’ senses, and resurrect the dead.

timelord

2. The Time Lord: This superhero type is basically The Doctor from Dr. Who. Notable superpowers: omnipotence, travel to other dimensions, open portals to anywhere, and travel beyond the omniverse.

elementalist

3. The Elementalist: This superhero type has the ability to manipulate the elements and use them as weapons to their advantage. Notable superpowers: manipulation of water, fire, weather, and plants, ability to shapeshift, shoot ice, and lightning and fire.

superman

4. The Superhuman: This superhero type is humans+, with enhanced human senses and decreased human limitations. Notable superpowers: sense danger, x-ray vision, walk through walls, super speed, mind reading, flight, super strength, and enhanced flexibility.

zen

5. The Zen Master: This superhero type sounds a bit like being permanently on mind-altering psychoactive substances crossed with Gandhi. Notable superpowers: speech empowerment, spiritual enlightenment, and infinite appetite!!.

 

-Kate Johnson

by   Ranker
Staff
in API Documentation, Developers

Ranker Widget oEmbed Documentation

Introduction

oEmbed is a format for allowing an embedded representation of a URL on third party sites. The simple API allows a website to display embedded content (such as photos or videos) when a user posts a link to that resource, without having to parse the resource directly.

To find out more information please review the oEmbed specification.

 

oEmbed endpoint URL

You can use the API endpoint to request the embed code for a list from its ID. The response will return in JSON format.

Request Type HTTP(S) GET
Authorization None
URL //widget.ranker.com/oembed/ID
Response Format JSON

 

List ID Discovery

Ranker supports discovery of List IDs. Each list page that supports embedding will have one or more links to an embed (or widget) page. These links can be found under ’embed’ or ‘widget’ links, or via ‘</>’ icons. Once navigated to, these widget pages will both display the List ID in the pages URL and beneath the Embed Code area.

 

Endpoint Parameters

All parameters are sent via query string parameters and must be urlencoded.

format List format type (string1). Defaults to grid.
rows Sizes widget to display this many rows (number2). Defaults to 20.
headername Show the list name (boolean). Defaults to True.
headerimage Show the list image (boolean). Defaults to False.
headerusername Show the list author name (boolean). Defaults to False.
headercriteria Show the list criteria (boolean). Defaults to False.
headerbgcolor Specify the widget header background color (hex3). Defaults to ffffff.
headerfontface Specify the widget header font-face (string4). Defaults to Arial.
headerfontcolor Specify the widget header foreground color (hex3). Defaults to 000000.
listfontface Specify the widget body font-face (string4). Defaults to Arial.
listfontcolor Specify the widget body foreground color (hex3). Defaults to 000000.
listdisplaydescriptions Show list item descriptions (boolean). Defaults to True.
listslidebgcolor Specify the slideshow format background color (hex3). Defaults to ffffff.
listdisplaythumbnails Show slideshow thumbnail carousel (boolean). Defaults to False.
listflatbuttons Show vote buttons in a flat style using your listfontcolor. Defaults to False.
footerbgcolor Specify the widget footer background color (hex3). Defaults to 1e3e66.
footerfontcolor Specify the widget footer foreground color (hex3). Defaults to ffffff.
footersharing Show the widget footer sharing options5 (boolean). Defaults to True.

1 Possible format types are ‘grid’ for poll lists and ‘slideshow’ for photo lists.
2 Rows setting only applies to grid format widgets.
3 Hex values should NOT include the #.
4 Possible font-face values are ‘arial’, ‘helevtica’, ‘verdana’, ‘geneva’, ‘georgia’ or ‘times’ only.
5 Widget sharing options share YOUR page, not the original embedded list.

 

Example endpoint URL

//widget.ranker.com/oembed/517518?format=grid&rows=10&headername=true&headerimage=true

 

Response Parameters

provider_name Name of the embedded content provider, Ranker.
provider_url URL of the embedded content provider, http://www.ranker.com.
author_name List author name.
author_url List author URL.
cache_age How long this embedded content will be cached for.
version Version of this oEmbed response, 1.0.
type Type of embedded content, Rich.
title Name of embedded list.
html Embed code content. This is what you will use on your pages.

 

Example Response

{
provider_name : “Ranker”,
provider_url : “http://www.ranker.com”,
author_name : “Ranky”,
author_url : “http://www.ranker.com/profile-of/ranky”
cache_age : “100”,
version : “1.0”,
type : “rich”,
title : “The Funniest Seinfeld Quotes”,
html : “<a class="rnkrw-widget" data-rnkrw-id="517518"
data-rnkrw-format="grid" data-rnkrw-rows="999"
href="http://www.ranker.com/list/the-funniest-seinfeld- quotes/desertrat89">The Funniest Seinfeld Quotes</a><script
id="rnkrw-loader" type="text/javascript" async src="//widget.ranker.com/static/rnkrw2.js"></script>”
}



by   Ranker
Staff
in Popular Lists

Tracking Votes to Measure Changing Opinions

A key part of any Ranker list are the votes are associated with each item, counting how often a user has given that item the “thumbs up” or “thumbs down”. These votes measure people’s opinions about politics, movies, celebrities, music, sports, and all of the other issues Ranker lists cover.

A natural question is how the opinions that votes measure relate to external assessments. As an example, we considered the The Most Dangerous Cities in America list. Forbes magazine lists the top 10 as Detroit, St. Louis, Oakland, Memphis, Birmingham, Atlanta, Baltimore, Stockton, Cleveland, and Buffalo.

The graph below show the proportion of up-votes, evolving over time up towards the end of last year, for all of the cities voted on by Ranker users. Eight of the Forbes’ list are included, and are highlighted. They are all in the top half of the worst cities in the list, and Detroit is correctly placed clearly as the overall worst city. Only Stockton and Buffalo, at positions 8 and 10 on the Forbes list, are missing. There is considerable agreement between the expert opinion from Forbes’ analysis, and the voting patterns of Ranker users.

MostDangerousCitiesAmerica

Because Ranker votes are recorded as they happen, they can potentially also track changes in people’s opinions. To test this possibility, we turned to a pop-culture topic that has generated a lot of votes. The Walking Dead is the most watched drama series telecast in basic cable history, with 17.3 million viewers tuning in to watch the season 5 premiere. With such a large fan base of zombie lovers and characters regularly dying left and right, there is a lot of interest in The Walking Dead Season 5 Death Pool list.

The figure below shows the pattern of change in the proportion of up-votes for the characters in this list, and highlights three people. For the first four seasons, Gareth had been one of the main antagonists and survivors on the show. His future as a survivor became unclear in an October 13th episode where Rick vowed to kill Gareth with a machete and Gareth, undeterred, simply laughed at the threat. Two episodes later on October 26th, Rick fulfilled his promise and killed Gareth using the machete While Gareth apparently did not take the threat seriously, the increase in up-votes for Gareth during this time makes it clear many viewers did.

WalkingDeadDeathPool

A second highlighted character, Gabriel, is a priest introduced in the latest season of the October 19th episode. Upon his arrival, Rick has already expressed his distrust in the priest and threatened that, if his own sins ends up hurting his family, it will be Gabriel who has to face the consequences. Since Rick is a man of many sins, the threat seems to be real. Ranker voters agree, as shown by the jump in up-votes around mid-October, coinciding with Gabriel’s arrival on the show.

The votes also sometimes tell us who has a good chance of surviving. Carol Peletier had been a mainstay in the season, but was kidnapped in the October 19th episode and did not appear in the following episode. She briefly appeared again in the subsequent episode, only to be rendered unconscious. Despite the ambiguity surrounding her survival, her proportion of up-votes decreased significantly, perhaps driven by her mention by another character, which provided a sort of “spoiler” hinting at survival.

While these two examples are just suggestive, the enormous number of votes made by Ranker uses, and the variety of topics they cover, makes the possibility of measuring opinions, and detecting and understanding change in opinions, an intriguing one. If there were a list of “Research uses for Ranker data”, we would give this item a clear thumbs up.

 

– Emily Liu and Michael Lee

Page 1 of 2412345...1020...Last »