diff --git a/next.config.js b/next.config.js
index a62a94b..cb08b1e 100644
--- a/next.config.js
+++ b/next.config.js
@@ -48,7 +48,7 @@ module.exports = removeImports({
         headers: [
           {
             key: "Access-Control-Allow-Origin",
-            value: "*"
+            value: process.env.BACKEND_URL
           },
           {
             key: "Access-Control-Allow-Methods",
diff --git a/src/config/appConfig.js b/src/config/appConfig.js
index 30556e0..44155e5 100644
--- a/src/config/appConfig.js
+++ b/src/config/appConfig.js
@@ -11,7 +11,7 @@ const appConfig = {
       "wss://purplerelay.com/",
       "wss://relay.devs.tools/"
     ],
-    authorPubkeys: ["f33c8a9617cb15f705fc70cd461cfd6eaf22f9e24c33eabad981648e5ec6f741", "c67cd3e1a83daa56cff16f635db2fdb9ed9619300298d4701a58e68e84098345"],
+    authorPubkeys: ["f33c8a9617cb15f705fc70cd461cfd6eaf22f9e24c33eabad981648e5ec6f741", "c67cd3e1a83daa56cff16f635db2fdb9ed9619300298d4701a58e68e84098345", "468f729dd409053dac5e7470622c3996aad88db6ed1de9165cb1921b5ab4fd5e"],
     customLightningAddresses: [
       {
         // todo remove need for lowercase
diff --git a/src/pages/details/[slug]/index.js b/src/pages/details/[slug]/index.js
index 4473f00..ced21bd 100644
--- a/src/pages/details/[slug]/index.js
+++ b/src/pages/details/[slug]/index.js
@@ -30,21 +30,15 @@ const Details = () => {
     const { showToast } = useToast();
 
     useEffect(() => {
-        const fetchLessons = async () => {
-            try {
-                const res = await axios.get('/api/lessons');
-                if (res.data) {
-                    const lessonData = res.data.map(lesson => ({
-                        resourceId: lesson?.resourceId,
-                        courseId: lesson?.courseId || null
-                    }));
-                    setLessons(lessonData);
-                }
-            } catch (err) {
-                console.error('err', err);
+        axios.get('/api/lessons').then(res => {
+            if (res.data) {
+                res.data.forEach(lesson => {
+                    setLessons(prev => [...prev, { resourceId: lesson?.resourceId, courseId: lesson?.courseId || null }]);
+                });
             }
-        };
-        fetchLessons();
+        }).catch(err => {
+            console.error('err', err);
+        });
     }, []);
 
     const fetchAuthor = useCallback(async (pubkey) => {
@@ -112,7 +106,21 @@ const Details = () => {
                     const parsedEvent = parseEvent(event);
                     setEvent(parsedEvent);
                     await fetchAuthor(event.pubkey);
-                    setAuthorView(session?.user?.pubkey === event.pubkey);
+
+                    const isAuthor = session?.user?.pubkey === event.pubkey;
+                    setAuthorView(isAuthor);
+
+                    if (parsedEvent.price || (isAuthor && event.kind === 30402)) {
+                        const shouldDecrypt = isAuthor ||
+                            session?.user?.role?.subscribed ||
+                            session?.user?.purchased?.some(purchase => purchase.resourceId === parsedEvent.d) ||
+                            lessons.some(lesson => lesson.resourceId === parsedEvent.d && session?.user?.purchased?.some(purchase => purchase.courseId === lesson.courseId));
+
+                        if (shouldDecrypt && !decryptedContent) {
+                            const decrypted = await decryptContent(event.content);
+                            setDecryptedContent(decrypted);
+                        }
+                    }
                 }
             } catch (error) {
                 console.error('Error fetching event:', error);
@@ -123,34 +131,7 @@ const Details = () => {
         };
 
         fetchAndProcessEvent();
-    }, [router.isReady, router.query, ndk, session?.user?.pubkey, fetchAuthor, showToast]);
-
-    useEffect(() => {
-        const handleDecryption = async () => {
-            if (!event || !session || !lessons.length) return;
-
-            const isAuthor = session?.user?.pubkey === event.pubkey;
-            
-            if (event.price || (isAuthor && event.kind === 30402)) {
-                const shouldDecrypt = isAuthor ||
-                    session?.user?.role?.subscribed ||
-                    session?.user?.purchased?.some(purchase => purchase.resourceId === event.d) ||
-                    lessons.some(lesson => 
-                        lesson.resourceId === event.d && 
-                        session?.user?.purchased?.some(purchase => 
-                            purchase.courseId === lesson.courseId
-                        )
-                    );
-
-                if (shouldDecrypt) {
-                    const decrypted = await decryptContent(event.content);
-                    setDecryptedContent(decrypted);
-                }
-            }
-        };
-
-        handleDecryption();
-    }, [event, session, lessons, decryptContent]);
+    }, [router.isReady, router.query, ndk, session, decryptContent, fetchAuthor, showToast]);
 
     const handlePaymentSuccess = (response) => {
         if (response && response?.preimage) {
@@ -204,4 +185,4 @@ const Details = () => {
     );
 };
 
-export default Details;
+export default Details;
\ No newline at end of file