OOP in elixir for teh lulz