erlang: implement constructor flags & never use static terms (unsafe)