implement erlang