add private SecureGate constructor