new hat permission check system