using latest elixir and erlang spec