add erlang implementation