add new permission checking