eAOP: an aspect oriented programming framework for Erlang