• Class/static data and methods
  • Inheritance (or composition)
  • Abstract base classes
  • Creating attributes with attr
  • Implementing protocols (context, iterator, etc.)