add access level checks