# Core Concepts
English | 日本語
## Layers and responsibilities
- `Communication`: TCP socket, CR+LF framing, and synchronization. It does not interpret device commands.
- `PM2CDDevice`: device-specific command construction, response parsing, and input validation.
- `PM2CDsingle`: single-process public interface, including motor selection and motion completion detection.
- `PM2CD`: multiprocess public interface built on `ProcessExecutor`, using a shared `Communication` instance and `SharedContext`.
## Important distinctions
The `motor` property selects the channel used when a method omits its `motor` argument. `move(..., relative=False)` specifies an absolute position, while `relative=True` specifies a relative displacement. `wait_for_complete()` uses the most recent motion context to distinguish an intermediate stop during backlash compensation from final completion.
The multiprocess implementation does **not** create a separate TCP connection for every worker; it shares and serializes communication.
> Before moving hardware, verify wiring, limit switches, travel direction, and permissible travel. The examples have not been run against a physical controller.