erlang uses 'behaviour' as its proxy for polymorphism. You pass in the atom representing a module when you make an instance of a process. As long as the interfaces are the same you can use interchangeable modules. No inheritance, but runtime swappable instantiation. Sort of like making an instance o