Problem: How can the solution to a problem be broken down into separate components?
public
private
protected
default
Problem: How do components work together to solve a problem?