diff --git a/pages/01189998819991197253.js b/pages/01189998819991197253.js
index f74ddc6..01d15ef 100644
--- a/pages/01189998819991197253.js
+++ b/pages/01189998819991197253.js
@@ -1,7 +1,6 @@
 import Header from '../Components/Header'
 
 export default function Error() {
-<<<<<<< HEAD
     return (
         <>
             <Header
@@ -21,25 +20,4 @@
             />
         </>
     )
-=======
-	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}
-			/>
-		</>
-	)
->>>>>>> 11dc35cde9cce7a8dfe7f5000060b0ea04437844
 }
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
