refactored accesslevel directive