In every object oriented programming language we model the domain with classes. Every object we generate from our classes is a container of state, represented by your instance variables, and behavior, represented by your methods. But Elixir is a functional programming language therefore it doesn’t have classes. It also doesn’t allow you to store state in objects. But of course it allows the definition of behavior, using functions.