diff --git a/pages/01189998819991197253.js b/pages/01189998819991197253.js
index 2260163..01d15ef 100644
--- a/pages/01189998819991197253.js
+++ b/pages/01189998819991197253.js
@@ -1,23 +1,23 @@
 import Header from '../Components/Header'
 
 export default function Error() {
-	return (
-		<>
-			<Header
-				name="0118 999 881 999 119 7253"
-				subtext={<>
-					Dear Sir/Madam,<br />
-					Fire! Fire! Help me!<br />
-					123 Carenden Road.<br />
-					Looking forward to hearing from you,<br />
-					All the best, Maurice Moss
-				</>}
-				embedDescription="This is the internet"
-				gradient={["F27878", "D96B6B"]}
-				wave="web/waves/header/rsm"
-				buttons={[{color: "F27878", buttonText: "ffffff", text: "No that's too formal", link: "/#"}]}
-				fullscreen={true}
-			/>
-		</>
-	)
+    return (
+        <>
+            <Header
+                name="0118 999 881 999 119 7253"
+                subtext={<>
+                    Dear Sir/Madam,<br />
+                    Fire! Fire! Help me!<br />
+                    123 Cavendon Road.<br />
+                    Looking forward to hearing from you,<br />
+                    All the best, Maurice Moss
+                </>}
+                embedDescription="This is the internet"
+                gradient={["F27878", "D96B6B"]}
+                wave="web/waves/header/rsm"
+                buttons={[{color: "F27878", buttonText: "ffffff", text: "No that's too formal", link: "/#"}]}
+                fullscreen={true}
+            />
+        </>
+    )
 }
diff --git a/pages/api/nucleus/verify/complete.js b/pages/api/nucleus/verify/complete.js
index 39bd55c..cdffc2e 100644
--- a/pages/api/nucleus/verify/complete.js
+++ b/pages/api/nucleus/verify/complete.js
@@ -10,10 +10,9 @@
     if ( !chk.data.success ) {
         return res.status(200).send({success: false})
     }
-    let secret = process.env.VERIFY_SECRET
     try {
-        await Axios.post(`http://192.168.0.18:10000/verify/${req.body.code}`, {
-            secret: secret
+        await Axios.post(`${process.env.VERIFY_CALLBACK}/verify/${req.body.code}`, {
+            secret: process.env.VERIFY_SECRET
         });
     } catch (e) {
         return res.status(200).send({success: false})
diff --git a/pages/nucleus/verify/index.js b/pages/nucleus/verify/index.js
index 44da4b4..5057b2a 100644
--- a/pages/nucleus/verify/index.js
+++ b/pages/nucleus/verify/index.js
@@ -71,23 +71,6 @@
                 </List>
                 <div id="confetti" />
             </Panel>
-            <Panel halfSize={false} id="invite">
-            <Title>Invite</Title>
-            <Divider />
-            <CardRow>
-                <Card
-                    wave="nucleus"
-                    icon="bots/nucleus/circle"
-                    buttonText={"FFFFFF"} gradient={["F27878", "D96B6B"]}
-                    title="Nucleus"
-                    subtext="Invite Nucleus to your server"
-                    buttons={[
-                        {color: "424242", link: "https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands", text: "Invite"}
-                    ]}
-                    url="https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands"
-                />
-            </CardRow>
-        </Panel>
         </AutoLayout>
     </>
 }
@@ -105,7 +88,7 @@
     let code;
     try {
         await Axios.patch(`http://localhost:10000/verify/${ctx.query.code}`);
-        code = await Axios.get(`http://localhost:10000/verify/${ctx.query.code}`, {code:ctx.query.code});
+        code = await Axios.get(`http://localhost:10000/verify/${ctx.query.code}`, {code: ctx.query.code});
     } catch (e) {
         return {
             redirect: {
diff --git a/pages/nucleus/verify/success.js b/pages/nucleus/verify/success.js
index de5b4d8..e5def5d 100644
--- a/pages/nucleus/verify/success.js
+++ b/pages/nucleus/verify/success.js
@@ -13,7 +13,14 @@
                 subtext="You can now close this tab or window."
                 gradient={["65CC76", "60B258"]}
                 wave="web/waves/header/rsm"
-                buttons={[]}
+                buttons={[
+                    {
+                        text: "Add Nucleus to your server",
+                        buttonText: "ffffff",
+                        link: "https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands",
+                        color: "65CC76",
+                    }
+                ]}
                 fullscreen={true}
             />
         )
diff --git a/pages/privacy.js b/pages/privacy.js
index db621c5..1652796 100644
--- a/pages/privacy.js
+++ b/pages/privacy.js
@@ -16,7 +16,7 @@
             <AutoLayout>
                 <Panel halfSize={true}>
                     <Title>Transparency</Title>
-                    <Text>Everything we store about you and your Discord servers will be listed.</Text>
+                    <Text>Everything we store about you and your Discord  will be listed.</Text>
                     <List colour={"6576CC"}>
                         <ListItem><a href="https://clicksminuteper.github.io/policies/rsm">RSM</a></ListItem>
                         <ListItem><a href="https://clicksminuteper.github.io/policies/clicksforms">ClicksForms</a></ListItem>
diff --git a/pages/supporters.js b/pages/supporters.js
index adbbbe7..f72bfcb 100644
--- a/pages/supporters.js
+++ b/pages/supporters.js
@@ -58,7 +58,7 @@
             "Eek": "Programmer",
             "Dilythion": "Programmer",
             "Tani": "Programmer",
-            "CocoboloDesk": "Legal",
+            "CocoboloDesk": "Clicks Team",
             "GenElectrovise": "Plugins"
         },
         { // Packages
