# System expansion: Introduction

> Johnny.Decimal is simple by design. But life doesn't always fit in a neat box. Here are three options for system expansion.

## The problem

The Johnny.Decimal structure is two-dimensional by design – areas and categories. This limitation is part of what makes it powerful. It's hard to get lost in a simple space.

But sometimes an extra dimension is required. Maybe you need to make more room in one part of a standard system. Or perhaps you have two or more systems and need to differentiate between them.

This page provides an overview of the three options. More detail is provided on the following pages.

## Definitions

**The Johnny.Decimal system** - A collection of methods, tools, and behaviours as documented at johnnydecimal.com.

**Your Johnny.Decimal system** - Your implementation of this system, customised to suit whatever it is that you're organising.

**Components** - Johnny.Decimal systems are made up of components. The list of components is not restricted, but the following are common: the JDex, filesystem, notes, tasks, to-dos, reminders, email, calendar, bookmarks.

**Domains** - Systems with one or more shared components are grouped by domain. For example, when you go to work and everything is on the company's systems, 'work' is its own domain. It is completely separate from your home system, your 'personal' domain.

**AC.ID notation** - Shorthand to refer to any generic Johnny.Decimal system. It stands for [area, category, ID](/documentation/acid-notation/).

## Multiple systems

Consider this option if you need to differentiate between two or more Johnny.Decimal systems.

### Example: Home and work

You have a system at home to manage your personal life. When you go to work, the company has its own system. So you have two separate systems and you need to differentiate between them.

#### Solution

Add a unique identifier to the start of each system.

<JDLineDiagram
  text={`
             ╔══════════════════╗
             ║                  ║
┌──────────╣   10-19 Area 1   ║
│          ║                  ║
│   HOME   ║   20-29 Area 2   ║
│          ║                  ║
└──────────╣   30-39 Area 3   ║
             ║                  ║
             ╚══════════════════╝
                               
             ╔══════════════════╗
             ║                  ║
┌──────────╣   10-19 Area 1   ║
│          ║                  ║
│   WORK   ║   20-29 Area 2   ║
│          ║                  ║
└──────────╣   30-39 Area 3   ║
             ║                  ║
             ╚══════════════════╝
`}
  alt="A line diagram. It shows two Johnny.Decimal systems with unnamed areas. The first has a new box extending from the front labelled home. The second has the same labelled work."
  figNumber="62.24A"
  figCaption="Multiple systems, each with a unique identifier at the front."
/>

For more information, see multiple systems [Overview](/documentation/multiple-systems-overview/) and [Guidelines](/documentation/multiple-systems-guidelines/).

## Expand an area

Consider this option if most of your life fits neatly in to a standard Johnny.Decimal system. But you have one area that doesn't. Either it has more than 10 of something, or it requires more depth than the system allows.

### Example: Students or freelancers

You're a student with more than 10 classes. Or you're a freelance designer with more than 10 clients, each with more than 10 products that you work on.

#### Solution

Expand one of your areas to accommodate.

<JDLineDiagram
  text={`
      ╔════════════════════════════╗    
      ║                            ║    
      ║   10-19 Standard area 1    ║    
      ║                            ║    
      ║   20-29 Standard area 2    ║    
┌───╩────────────────────────────╩───┐
│                                    │
│       30-39 Expanded area 3        │
│                                    │
└───╦────────────────────────────╦───┘
      ║   40-49 Standard area 4    ║    
      ║                            ║    
      ╚════════════════════════════╝    
`}
  alt="A line diagram. It shows a Johnny.Decimal system with areas 10-19 through 40-49. Area 30-39 is physically larger than the others and breaks out of the main box, indicating that we've expanded it."
  figNumber="62.24B"
  figCaption="An expanded area within a standard system."
/>

For more information, see expand an area [Overview](/documentation/expand-an-area-overview/) and [Guidelines](/documentation/expand-an-area-guidelines/).

## Extend the end

Consider this option if almost everything in your system fits neatly in to the standard Johnny.Decimal structure. But you have an ID that needs to be repeated, or you require more than 100 IDs in a category.

### Example: Chickens

You're using the standard [Life Admin System](/las/) and have many chickens. You need a way to organise your visits to the vet.

#### Solution

Extend the end to cover each chicken. `11.63+ Wendy` is the ID for Wendy's visits to the vet.[^the-plus]

[^the-plus]: Don't worry about the `+` for now, we'll talk about it later.

<JDLineDiagram
  text={`
╔════════════════════════════════╗        
║                                ║        
║ 10-19 Life admin               ║        
║    11 Me & other living things ║        
║       ...                    ┌─╩───────┐
║       11.63 Veterinary care  │ + Wendy │
║                              └─╦───────┘
╚════════════════════════════════╝        
`}
  alt="A line diagram. It shows a portion of a standard Johnny.Decimal system, focusing on the ID called 11.63 Veterinary care. At the end of that ID, and extending out of the right side of the diagram, is another box labelled + Wendy, indicating that we've extended this ID for Wendy."
  figNumber="62.24C"
  figCaption="Extending an ID at the end of a system."
/>

### Example: A repeated task within a larger project

In my old job, `72.02` was the task of installing cabling at a data centre. But there were 13 data centres.

#### Solution

Extend the end to cover each data centre. `72.02+ X01` was the centre with site code `X01`, `72.02+ Y02` had site code `Y02`, etc. This worked because most of the other IDs in this system didn't need to occur 13 times.

For more information, see extend the end [Overview](/documentation/extend-the-end-overview/) and [Guidelines](/documentation/extend-the-end-guidelines/).