argument null checks
added new qualifier
permissions API refactoring