diff --git a/pages/api/hello.js b/pages/api/hello.js
deleted file mode 100644
index df63de8..0000000
--- a/pages/api/hello.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
-
-export default function handler(req, res) {
-  res.status(200).json({ name: 'John Doe' })
-}
diff --git a/pages/api/rsmv/complete.js b/pages/api/rsmv/complete.js
index 3259967..97f02b7 100644
--- a/pages/api/rsmv/complete.js
+++ b/pages/api/rsmv/complete.js
@@ -1,6 +1,6 @@
 import Axios from 'axios';
 
-export default async (req, res) => {
+const Complete = async (req, res) => {
     let code = await Axios.post('http://localhost:3000/api/rsmv/validate', {code:req.body.code});
     if (code.status != 200) {
         return res.send(404);
@@ -15,3 +15,5 @@
     )
     return res.send(resp.status);
 }
+
+export default Complete;
\ No newline at end of file
diff --git a/pages/api/rsmv/validate.js b/pages/api/rsmv/validate.js
index 7359a68..4aade75 100644
--- a/pages/api/rsmv/validate.js
+++ b/pages/api/rsmv/validate.js
@@ -5,7 +5,7 @@
 const db = 'rsm';
 const collection = 'rsmv-tokens'
 
-export default (req, res) => {
+const Validate = (req, res) => {
     return new Promise((resolve, reject) => {
         MongoClient.connect(url, async function(err, client) {
             let db_response = await client.db(db).collection(collection).findOne({code: req.body.code});
@@ -25,4 +25,6 @@
             return resolve(res.status(200).send(props));
         })
     })
-}
\ No newline at end of file
+}
+
+export default Validate;
\ No newline at end of file
diff --git a/pages/api/rsmv/verifyTkn.js b/pages/api/rsmv/verifyTkn.js
index 7e9d06f..50eb77e 100644
--- a/pages/api/rsmv/verifyTkn.js
+++ b/pages/api/rsmv/verifyTkn.js
@@ -1,7 +1,7 @@
 import Axios from 'axios';
 import qs from 'querystring';
 
-export default async (req, res) => {
+const verifyTkn = async (req, res) => {
     const chk = await Axios.post('https://hcaptcha.com/siteverify', qs.stringify({
             response: req.body.tkn,
             secret: '0x19C699BFfce07b2a026121DE6702706BB2d51D6c',
@@ -9,4 +9,6 @@
         }))
 
     return res.send({ success: chk.data.success });
-}
\ No newline at end of file
+}
+
+export default verifyTkn;
\ No newline at end of file
