Shared Flashcard Set

Details

CEN 3721 by Debra Davis Exam 2
CEN 3721 by Debra Davis Exam 2
133
Computer Science
Undergraduate 3
02/28/2012

Additional Computer Science Flashcards

 


 

Cards

Term

What is usability?

Definition

A measure of the quality of interaction between a person and a system

Term

Why do usability testing?

Definition

It's intended to test whether the product being developed is usable by the intended users.

Term

What combination of methods are used to collect data in a usability test?

Definition

1. user entrance and exit questionnaires

2. user task based questionnaires

3. user satisfaction questionnaire

4. test facilitator observations

5. video/audio recording

Term

What are some of the results of low usability?

Definition

1. frustrated users

2. visitors leaving

3. reduction in repeat visits

4. higher support costs

5. decreased productivity

Term

What are some types of usability problems

Definition

1. products doesn't match job or task

2. poor organization/layout

3. unexpected occurrence of events

4. product not self evident

5. requires recall rather than recognition

6. inconsistent screens, messages, terminology

7. design is inefficient

8. cluttered or unattractive design

9. no feedback or poor feedback about status or errors

10. no exit or undo

11. help or documentation is not helpful

Term

What are some ways to improve usability?

Definition

1. Take a user centered approach

2. create prototypes (drafts)

3. Perform usability testing

4. follow usability guidelines

Term

(Chapter 9 Cooper)

What is a platform?

Definition

It is the combination of hardware and software that enables the product to function.

Term

(Chapter 9 Cooper)

What is posture?

Definition

It is a product's behavior stance, the way it presents itself to users.

Term

(Chapter 9 Cooper)

Decisions about technical platforms are best made when?

Definition

In concert with interaction design efforts.

Term

(Chapter 9 Cooper)

What is sovereign posture?

Definition

Programs that monopolize users' attention for long periods of time

Term

(Chapter 9 Cooper)

What is an example of sovereign posture?

Definition

Word processors, spreadsheets, and email applications

Term

(Chapter 9 Cooper)

Who are the typical users of sovereign applications?

Definition

Intermediates

Term

(Chapter 9 Cooper)

What is a transient posture?

Definition

It is a product that presents a single function with a constrained set of accompanying controls.

Term

(Chapter 9 Cooper)

What are some examples of transient posture?

Definition

Windows Explorer, volume control, and iTunes.

Term

(Chapter 9 Cooper)

True/False

A transient application should launch to its previous position and configuration

Definition

True

Term

(Chapter 9 Cooper)

What is Daemonic posture?

Definition

Programs that do not normally interact with the user.

Term

(Chapter 9 Cooper)

What are examples of daemonic posture?

Definition

A printer driver or network connection.

Term

(Chapter 9 Cooper)

What are control panels?

Definition

Launchable transient applications that give users a consistent place to go to configure daemons

Term

(Chapter 9 Cooper) Describe the characteristics of a web application.

Definition

They are heavily interactive and exhibit complex behaviors in much the same way that a robust desktop application does.

Term

(Chapter 9 Cooper) What is a sovereign posture Web application?

Definition

An application that delivers information and functionality in a manner that best supports more complex human activities.

Term

(Chapter 9 Cooper) What is an example of a sovereign posture Web applications?

Definition

Flickr, an online photo sharing service.

Term

(Chapter 9 Cooper) What is an transient posture Web application?

Definition

An application that performs an occasional routine task.

Term

(Chapter 9 Cooper) What is an intranet?

Definition

It is a private version of the Web that is only accessible to employees of a company.

Term

(Chapter 9 Cooper) What is a transactional kiosk?

Definition

A kiosk that that provides some tightly scoped transaction or service (ATM).

Term

(Chapter 9 Cooper) What is a explorational kiosk?

Definition

A kiosk that provides aditional information and a richer experience for users who have come to see the main exhibits.

Term
(Chapter 9 Cooper) What are the 5 most useful interaction and interface principals for designing handheld devices?
Definition

1. Strive for integration of functionality to minimize navigation.

2. Think about how the device will be held and carried

3. Determine early on whether the device or application will support one-handed or two handed operations

4. Consider whether the device will be a satellite or a stand alone

5. Avoid use of pluralized and pop up windows.

Term

(Chapter 9 Cooper) What are the 3 most useful interaction and interface principals for designing kiosks?

Definition

1. Make sure that your click targets are large enough

2. Use soft keyboard input sparingly

3. Avoid drag and drop

Term

(Chapter 9 Cooper) What are the 5 most useful interaction and interface principals for designing television based interfaces?

Definition

1. Use a screen layout and visual design that can be easily read from across the room.

2. Keep onscreen navigation simple

3. Keep control integration in mind

4. Keep remote controls as simple as possible

5. Focus on user goals and activites

Term

(Chapter 9 Cooper) What are the 6 most useful interaction and interface principals for designing automotive interfaces?

Definition

1. Minimize time that hands are off the wheel

2. Enforce consistent layou from screen to screen

3. Use direct control mappings when possible

4. Choose input mechanisms carefully

5. Keep mode/context switching simple and predictable

6. Provide audible feedback

Term

(Chapter 9 Cooper) What are the 5 most useful interaction and interface principals for designing audible interfaces?

Definition

1. Organize and name functions according to user mental models

2. Always signpost the currently available functions

3. Always provide a way to get back one step and to the top level

4. Always provide a means to speak with a human

5. Give the user enough time to respond

Term

(Lecture 9: Usability Testing) What are the 5 characteristics of usability testing

Definition

1. The goal is to improve a product's usability

2. The participants must represent real users

3. The participants must do real tasks

4. Test facilitators must observe and record the participants

5. Data must be analyzed and used to recommend changes to fix problems

Term

(Lecture 9: Usability Testing) What 3 things does usability testing require?

Definition

1. A large sample size of participants

2. careful test construction and implementation

3. Analysis of inferential statistics

Term

(Lecture 9: Usability Testing) Tests with as few as 4 or 5 users are able to uncover ___% of the problems with a product

Definition

80%

Term

(Lecture 9: Usability Testing) What are some characteristics of a usability test?

Definition

1. Uses real customers (users)

2. Customers perform actual tasks with the site or a prototype

3. Data is recorded (qualitative or quantitative with customer comments)

4. Provides objective information

5. Facilitated by a skilled specialist

6. Observed by a skilled specialist

Term

(Lecture 9: Usability Testing) What are some imitations of usability testing?

Definition

1. Based on a few customers and not scientifically rigorous

2. Guinea pig effect-test environment cannot duplicate the real world and users know they are being watched

3. Not thorough by nature-Testing a few tasks, not every aspect of site usage and some issues are not readily apparent

Term

(Lecture 9: Usability Testing) What are the 7 stages of a usability test?

Definition

1. Setting objectives

2. Creating the test plan

3. Preparing and creating needed documents

4. Selecting test participants

5. Performing the test

6. Conducting a pilot and final tests

7. Analyzing and presenting your data

Term

(Lecture 9: Usability Testing) What are some qualities of usability objectives

Definition

1. They created during user/task analysis and product scoping

2. They must be measurable

3. Should indicate: Type of user, Task to be performed, and specific performance criteria

Term

(Lecture 9: Usability Testing) Good usability is indicated by?

Definition

1. Ease of learning-How fast can a novice learn to accomplish basic tasks?

2. Efficiency of use - How fast can an experienced user accomplish tasks

3. Easy to remember/memorability- can a user remember enough to use it effectively the next time?

4. Error frequency and severity - How often do users make errors, how serious are these errors, and how do users recover from these errors?

5. Subjective satisfaction - How much does the user like using the system

Term

(Lecture 9: Usability Testing) Creating the test plan is basically?

Definition

Explaining what you are testing and how you will conduct the test

Term

(Lecture 9: Usability Testing) What are the 6 things to consider when creating the test plan?

Definition

1. Purpose

2. Problem Statement/Test Objectives

3. User Profile

4. Method

5. Task List

6. Test Environment/Equipment

Term

(Lecture 9: Usability Testing) What are the 4 basic participant documents;

Definition

1. Waiver or consent form

2. Entrance questionnaire

3. Task based questionnaire

4. Exit questionnaire

Term

(Lecture 10) What is a graphical input device (GID)?

Definition

It is a mechanism for communicating information.

Term

Interpret this notation sequence: Shift↓n Control ↓ k Shift ↑ w Control

Definition

1. Press & hold Shift

2. tap n

3. press & hold Control (while Shift

4. is still depressed)

5. tap k

6. release Shift

7. tap w

8. release Control

Term

(Lecture 10) What is a mode?

Definition

It is the system's current state that is manifested by how an interface responds to a gesture.

Term

(Lecture 10) What is a gesture?

Definition

It is a sequence of human actions completed as a set

Term

(Lecture 10) What is chunking?

Definition

It is combining a sequence of actions into a gesture.

Term

(Lecture 10) What are some problems with modes?

Definition

1. toggles can be problematic

2. Caps lock key: how do you know when it is on?

3. How much of a problem is this?

Term

(Lecture 10) What 3 ways does Norman list to minimize mode errors?

Definition

1. Do not have modes

2. Ensure that modes are distincly marked

3. Ensure that the commands required by different modes are not the same, so that a command issued in the wrong mode will not lead to problems

Term

(Lecture 10) What is the range of a gesture?

Definition

The set of states in which a gesture(g) has a particular interpretation

Term

(Lecture 10) What is persistence of modes?

Definition

When you enter a mode, does the program stay in that mode indefinitely or does it return to the previous state after one command?

Term

(Lecture 10) What is the general rule of modes?

Definition

Modes that vanish after a single use generally cause fewer errors than modes that persist

Term

(Lecture 10) What is a Spring-loaded mode (aka spring locked mode or quasimode or user-maintained mode)?

Definition

A mode in which one must activate and hold a control while performing another action.

Term

(Lecture 10) What are adaptive menus or adaptive palettes?

Definition

It makes the favored (or most often used) item att the top of the menu or palette

Term

(Lecture 10) Quasimodes should be reserved for?

Definition

Control functions

Term

(Lecture 10) What are visible interface feature?

Definition

It is either currently accessible to a human sense organ or has not yet faded from short term memory.

Term

(Lecture 10) What does affordance do?

Definition

It provides strong clues to the operations of things

Term

(Lecture 10) What is a monotonous interface?

Definition

An interface having only one way to accomplish a task

Term

(Lecture 10) What is a modeless interface?

Definition
A given user gesture has one and only one result
Term

(Lecture 11: Quantification) What does GOMS stand for?

Definition

1. Goals - the userr's goals defined in layman's terms

2. Operators - actions that the user executes or that the software allows the user to take

3. Methods - exact, well-learned sequences of steps taken to accomplish a goal

4. Selection rules - which method should be used to satisfy a goal

Term

(Lecture 11: Quantification) In Goms, K means?

Definition

Press a Key or button

Term

(Lecture 11: Quantification) In Goms, P means

Definition

Point with mouse

Term

(Lecture 11: Quantification) In Goms, H means?

Definition

Home hands to keyboard or perifpheral device

Term

(Lecture 11: Quantification) In Goms, M means?

Definition

Mental preparation for next step

Term

(Lecture 11: Quantification) In Goms, R means?

Definition

System response

Term

(Lecture 11: Quantification) In Goms, what would this would translate to?

1. Move hand to mouse

2. Position mouse after the bad char

3. Return to keyboard

4. Delete bad char

5. Type in new char

6. Reposition insertion point

Definition

1. H[mouse]

2. PK[Left]

3. H[keyboard]

4. MK[backspace]

5. K[char]

6. H[mouse]MPK[Left]

Term

(Lecture 11: Quantification) What are the limitations of GOMS?

Definition

1. The model applies to skilled users, not to beginners or intermediates

2. The model doesn't account for either learning of the system or its recall after a period of disuse

3. Even skilled users occasionally make errors; however, the model doesn't account for errors

4. Within skilled behavior, the model is explicit about elementary perceptual and motor components. The cognitive processes in skilled behavior are treated in a less distinguished fashion

5. Mental workload is not addressed in the model

Term

(Lecture 13: Software Posture) What is posture?

Definition

A program's behavioral stance

Term

(Lecture 13: Software Posture) what is sovereign posture?

Definition

Programs that are best used full screen, keeping the user's attention for long continuous periods of time

Term

(Lecture 13: Software Posture) What is a transient posture?

Definition

A program that comes and goes, representing a single, high-relief function, called when needed.

Term

(Lecture 13: Software Posture) What is a daemonic posture?

Definition

Programs with which the user does not normally interact; background task programs

Term

(Lecture 13: Software Posture) What are information oriented sites?

Definition

A combination of sovereign and transient.

Term

(Lecture 13: Software Posture) What are transactional sites and web applications?

Definition

A combination of sovereign and transient, but more complex

Term

(Lecture 13: Software Posture) what kind of posture are kiosks?

Definition

transient

Term

(Lecture 13: Software Posture) What are the 6 general design principles of postures?

Definition

1. Don't think of your product as a computer

2. Integrate your hardware and software design

3. Let context drive the design

4. Use modes judiciously, if at all

5. Balance navigation with display density

6. Customize for your platform

Term

(Lecture 13: Software Posture) What should you strive for with handheld devices?

Definition

For integration of functionality to minimize navigation.

Term

(Lecture 16: Managing Software Development) What does project management do?

Definition

It encompasses all the activities needed to plan and execute a project.

Term

(Lecture 16: Managing Software Development) What is needed to plan and execute a project?

Definition

1. Deciding what needs to be done

2. Estimating costs

3. Ensuring there are suitable people to undertake the project

4. Defining responsibilities

5. Scheduling

6. Making arrangements for the work

7. Directing

8. being a technical leader

9. Reviewing and approving decisions made by others

10. Building morale and supporting staff

11. Monitoring and controlling

12. Co-ordinating the work with managers of other projects

13. Reporting

14. Continually striving to improve the process

Term

(Lecture 16: Managing Software Development) What are software process models?

Definition

They are general approaches for organizing a project into activities.

Term

What is the opportunistic approach?

Definition

It is what occurs when an organization does not follow good engineering practices.  

[image]

Term

(Lecture 16: Managing Software Development) What is the waterfall model?

Definition

The classic way of looking at S.E. that accounts for the importance of requirements, design, and quality assurance.

 

Term

(Lecture 16: Managing Software Development) What are the limitations of the waterfall model?

Definition
  1. The model implies that you should attempt to complete a given sstage before moving on to the next stage
  2. The model makes no allowances for prototyping
  3. It implies that you can get the requirements right by simply writing them down and reviewing them
  4. The model implies that once the product is finished, everything else is maintenance
Term

(Lecture 16: Managing Software Development) What is the phased release model?

Definition

It introduces the notion of incremental development

 

 

Term
(Lecture 16: Managing Software Development) What is the spiral model?
Definition

It explicitly embraces prototyping and an iterative approach to software development

 

 

Term
(Lecture 16: Managing Software Development) What is the evolutionary model?
Definition

It shows software development as a series of hills, each representing a separate loop for the spiral

 

[image]

Term
(Lecture 16: Managing Software Development) What is the concurrent engineering model?
Definition

It explicitly accounts for the divide and conqure principle.

 

 

Term

(Lecture 16: Managing Software Development) What is the Rational Unified process?

Definition

This is the most widely known mehodology that embraces UML.

Term

(Lecture 16: Managing Software Development)

Compare the different process models:

1. waterfall

2. phased release

3. spiral

4. evolutionary

5. concurrent

 

Definition

 

1. waterfall - Incorporates the notion of stages

2. phased release -Incorporates the notion of doing some initial high level analysis, and then dividing the project into releases

3. spiral - incorporate prototyping and risk analysis

4. evolutionary - incorporate the notion of varying amounts of time and work, with overlapping releases

5. concurrent - Incorporates the notion of breaking the system down into components and developing them in parallel.

Term

(Lecture 16: Managing Software Development)

What is elapsed time?

Definition

The difference in time form the start date to the end date of a task or project

Term

(Lecture 16: Managing Software Development)

What is development effort?

Definition

The amount of labour used in person months or person days.

Term

(Lecture 16: Managing Software Development)

What is divide and conqure?

Definition
  1. to make a better estimatte, you should divide the project up into individual subsystems
  2. then divide each subsystem further into the activities that will be required to develop it
  3. next, you make a series of detailed estimates for each individual activity
  4. and sum the results to arrive at the grand total estimate for the project
Term

(Lecture 16: Managing Software Development)

What are the activities when making estimates?

Definition

It is the time required for all development activities, including:

  • prototyping
  • design
  • inspecting
  • testing
  • debugging
  • writing user documentation
  • deployment
Term

(Lecture 16: Managing Software Development)

How do you base your estimates on past experience combineed with knowledge of the current project?

Definition
  1. If you are developing a project that has many similarites with a past project-you can expect it to take a similar amount of work
  2. Base your estimates on the personal judgement of your experts or;
  3. Use algorithmic models developed in the software industry as a whole by analyzing a wide range of projects - they take into account various aspects of a project's size and complexity, and provide formulas to compute anticipated cost
Term

(Lecture 16: Managing Software Development)

What do algorithmic models do?

Definition

They allow you to systematically estimate development effort

Term

(Lecture 16: Managing Software Development)

What differences should you account for when extrapolatiing from other projects?

Definition
  • different software developers
  • different development processes and maturity levels
  • different types of customers and users
  • different schedule demands
  • different technology
  • different technical complexity of the requiements
  • different domains
  • different levels of requirement stability
Term

(Lecture 16: Managing Software Development)

What precautions should you take when you anticipate the worst case and plan for contingencies?

Definition
  • Develop the most critical use case first
  • Make three estimates: Optimistic, Likely, and Pessimistic
Term

(Lecture 16: Managing Software Development)

How do you combine multiple independent estimates?

Definition
  • Use several differenjt techniques and compare the results
  • If there are discrepancies, analyze your calculations to discover what factors causing the differences
  • Use the Delphi technique
Term

(Lecture 16: Managing Software Development)

What is the Delphi technique?

Definition
  • Several individuals initially make cost estimates in private
  • They then share their estimates to discover the discrepancies
  • Each individual repeatedly adjusts his or her estimates until a consensus is reached
Term

(Lecture 16: Managing Software Development)

How do you revise and refine estimates as work progresses?

Definition
  • As you add detail
  • As the requirements change
  • As the risk management process uncoves problems
Term

(Lecture 16: Managing Software Development)

What is a egoless team?

Definition
  • In such a team everybody is equal, and the team works together to achieve a common goal
  • decisions are made by consensus
  • most suited to difficult projects with many technical challenges
Term

(Lecture 16: Managing Software Development)

What is a hierarchiacal manager subordiate structure?

Definition
  • each individual reports to a manager and is responsible for performing the tasks delegated by that manager
  • suitable for large projects with a strict schedule where everybody is well trained and has a well defined role
  • however, since everybody is only responsible for their own work, problems may go unnoticed
Term

(Lecture 16: Managing Software Development)

What is a chief programmer team?

Definition
  • midway between egoless and hierarchical
  • the chief programmer leads and guides the project
  • he or she consults with and relies on individual specialists
Term

(Lecture 16: Managing Software Development)

What are the skills needed on a team?

Definition
  • architect
  • project manager
  • configuration management and build specialist
  • user interface specialist
  • technology specialist
  • hardware and third party software specialist
  • user documentation specialist
  • tester
Term

(Lecture 16: Managing Software Development)

What is scheduling?

Definition

It is the process of deciding:

  • In what sequence a set of activities will be performed
  • when they should start and be completed

 

 

Term

(Lecture 16: Managing Software Development)

What is tracking?

Definition

It is the process of determining how well you are sticking to the cost estimate and schedule

Term

(Lecture 16: Managing Software Development)

What is a PERT chart?

Definition

A chart that shows the sequence in which tasks must be completed.

Term

(Lecture 16: Managing Software Development)

What does the critical path show?

Definition

It indicates the minimum time in which it is possible to complete the project

Term

(Lecture 16: Managing Software Development)

What is a Gantt chart?

Definition

A chart that graphically presents the start and end dates of each software engineering task

Term

(Lecture 16: Managing Software Development)

What are the contents of a project plan?

Definition
  1. purpose
  2. background information
  3. processes to be used
  4. subsystems and planned releases
  5. risks and challenges
  6. tasks
  7. cost estimates
  8. team
  9. schedule and milestones
Term

(Lecture 16: Managing Software Development)

What are the difficulties and risks in project management?

Definition
  • Accurately estimating costs is a constant challenge
  • it is difficult to measure progress and meet deadlines
  • it is difficult to deal with a lack of human resources or technology need to successfully run a project
  • communicating effectively in a large project is hard
  • it is hard to obtain agreement and commitment from others
Term

(Lecture 16: Managing Software Development)

What is a way to deal with the difficulty of accurately estimating costs?

Definition

Follow the cost estimation guidelines

Term

(Lecture 16: Managing Software Development)

What are ways to deal with the difficulty of measuring progress and meeting deadlines?

 

Definition
  • Improve you cost estimation skills so as to account for the kinds of problems that may occur
  • develop a closer relatinship with other members of the team
  • be realistic in initial requirements gathering, and follow an iterative approach
  • use earned value charts to monitor progress
Term

(Lecture 16: Managing Software Development)

What are ways to deal with the difficulty of dealing with lack of human resources or technology needed to successfully run a project?

 

Definition
  • When determining the requirements and the project plan, take into consideration the resources available
  • if you cannot find skilled people or suitable technology then you must limit the scope of you project
Term

(Lecture 16: Managing Software Development)

What are ways to deal with the difficulty of communicating effectively in a large project?

Definition
  • take courses in communication, both written and oral
  • learn how to run effective meetings
  • review what information everybody should have and make sure they have it
  • make sure that project information is readily available
  • user groupware technology to help people exchange the information they need to know
Term

(Lecture 16: Managing Software Development)

What are ways to deal with the difficulty of obtaining agreement and commitment from others?

Definition
  1. take courses in negotiating skills and leadership
  2. ensure that everybody understand
  • the position of verybody else
  • the costs and benefits of each alternative
  • the rationale behind any compromies

  3.ensure that everybody's proposed responsibility is clearly expressed

  4.listen to everybody's opinion, but take assertive action, when needed, to ensure progress occurs.

 

 

Term

(Raskin Chapter 3)

What is content?

 

Definition

It is information that resides in a computer  and that has meaning and utility for you.

Term

(Raskin Chapter 3)

What is a graphical input device (GID)?

Definition

A mechanism for communicating information.

Term

(Raskin Chapter 3)

What is the GID button?

Definition

The principal button on any GID.

Term

(Raskin Chapter 3)

What is a tap?

Definition

The act of pressing and releasing a key or switch without any intervening action.

Term

(Raskin Chapter 3)

What is a click?

Definition

To position the GID and then to tap the GID button

Term

(Raskin Chapter 3)

What is drag?

Definition

To press the GID button at one location and then to move the ID before releasing the GID button

Term

(Raskin Chapter 3)

What is double click?

Definition

To position the GID and then to tap the GID button twice quickly.

Term

(Raskin Chapter 3)

What is a gesture?

Definition

A sequence of human actions completed automatically once set in motion.

Term

(Raskin Chapter 3)

What is chunking?

 

Definition

Combining a sequence of actions into a gestue related to the psychological process.

Term

(Raskin Chapter 3)

What is monotony?

 

Definition

It is the dual of modelessness in an interface

Term

(Raskin Chapter 4)

What is a string?

 

 

 

Definition

A series of characters

Term

(Raskin Chapter 4)

 

What is a delimiter?

 

 

 

 

Definition

A character that marks the beginning or the end of a meaningful string of text.

Term

(Raskin Chapter 4)

 

What is an argument?

 

 

 

 

Definition

Information that a command needs.

Term

(Raskin Chapter 4)

 

What is character efficiency?

 

 

 

 

Definition

The minimum number of charactes required for a task

Term

(Raskin Chapter 4)

 

What is Fitts' Law?

 

 

 

 

 

 

Definition

The average time it takes a user to succeed in getting the cursor to the button.

Term

(Article Mis-Usability)

What are the four aspects of usability?

Definition
  1. easy to learn
  2. useful
  3. easy to use
  4. pleasant to use
Term

(Article Mis-Usability)

What are the general categories of misconceptions that contribute to misusability?

Definition
  1. Misunderstanding of the concept of usability itself
  2. Assuming that statistics equals a usability test and misusing statistical results
  3. Using usability tests for verification rather than usability
  4. Lack of knowledge of the limitations of and the proper methods of usability testing
  5. Testing of ease of use but not usability
Term

(Article Mis-Usability)

Even the most rigorously conducted formal test cannot ensure that a product wil be usable when released. What are the four main reasons why?

Definition
  1. Testing is always an artificial situation
  2. Test results do not prove that a product works
  3. Participants are rarely fully representative of the target population
  4. Testing is not always the best technique to use
Term

(Article Role of Children)

What are the four roles that children may have in the design of new technologies?

Definition

User, tester, informant, and design partner.

Supporting users have an ad free experience!