# Internals of xtensor

This section provides information about xtensor’s internals and its architecture. It is intended for developers who want to contribute to xtensor or simply understand how it works under the hood. xtensor makes heavy use of the CRTP pattern, template meta-programming, universal references and perfect forwarding. One should be familiar with these notions before going any further.

- Concepts
  - xexpression
  - xiterable
  - xsemantic
  - xcontainer
  - xfunction
- Implementation classes
  - Requirements
  - List of available expression classes
  - xarray and xtensor
  - Inner types definition
- Expression tree
  - xfunction
  - Holding expressions
  - Building the expression tree
  - Plugging new function types
- Iterating over expressions
  - xiterable and inner types
  - Steppers
  - Broadcasting
  - Iterators
- Assignment
  - Extended copy semantic
  - Computed assignment
  - Scalar computed assignment
  - Expression assigners
  - assign_xexpression
  - computed_assign
  - scalar_computed_assign