update with programming elixir practices