diff --git a/enzevalos_iphone/SwiftUI/Read/ReadMainView.swift b/enzevalos_iphone/SwiftUI/Read/ReadMainView.swift
index d4ee8746db78cfc3f8f9697e7a13941b78d39cf2..27d7620e3c02924b707cad3652c77f3d7b7e5df3 100644
--- a/enzevalos_iphone/SwiftUI/Read/ReadMainView.swift
+++ b/enzevalos_iphone/SwiftUI/Read/ReadMainView.swift
@@ -66,7 +66,7 @@ struct ReadMainView <M: DisplayMail>: View {
                     tab: ReadPart.Attachments.value,
                     image: Image(systemName: "rectangle.and.paperclip"),
                     description: "Tab.Label.Attachments",
-                    content: AnyView(AttachmentsViewMain(attachments: model.mail.displayAttachments, dlAll: true))
+                    content: AnyView(AttachmentsViewMain(attachments: model.mail.displayAttachments, downloadAll: true))
                 )                
             ]
         }
diff --git a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/AttachmentsViewMain.swift b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/AttachmentsViewMain.swift
index 463c912428954c05569ce4a5ef77e49d894b56ee..fa7044dc45a7b18c076888bfe81fd4ef78c7f8ec 100644
--- a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/AttachmentsViewMain.swift	
+++ b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/AttachmentsViewMain.swift	
@@ -15,29 +15,40 @@
 //  You should have received a copy of the GNU General Public License
 //  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
+/// a file that preview the attachments of incoming mails
+// currently this view only previews a ProxyAttachment
 import SwiftUI
 
 struct AttachmentsViewMain: View {    
     
     // TODO: Refactor to model?
+
+    //a list that contains all the attachment files
     @State var attachments: [DisplayAttachment]
     // Whether the Download all button was clicked
-    @State var dlAll = true;
+    @State var downloadAll = true;
     
     var body: some View {
         VStack{
             Spacer()
             // TODO: Add link section
-            // check if there even are attachments to be displayed
+            // default view if there are no attachments to be displayed
             if  attachments.count == 0{
                 noAttachments
             }
+            // otherwise preview the attachments
             else {
                 attachmentsView
             }
         }
     }
     
+    /// default view if there are no attachments to be displayed
+    var noAttachments: some View {
+        return Text(NSLocalizedString("ReadView.Attachments.No", comment: "")).font(.footnote).padding(30)
+    }
+    
+    /// a view that previews all the attachment files
     var attachmentsView: some View {
         return VStack(alignment: .leading, spacing: 5){
             // headline
@@ -54,7 +65,7 @@ struct AttachmentsViewMain: View {
                     ForEach(0..<attachments.count) { i in
                         AttPrev(
                             attachment: self.attachments[i],
-                            preload: self.dlAll
+                            shouldBeDownloaded: self.downloadAll
                         )
                     }
                 }
@@ -63,34 +74,39 @@ struct AttachmentsViewMain: View {
         .padding(.top, 30)
         .padding(.bottom,10)
     }
-    
-    var noAttachments: some View {
-        return Text(NSLocalizedString("ReadView.Attachments.No", comment: "")).font(.footnote).padding(30)
-    }
-    
 }
 
 struct AttachmentsViewMain_Previews: PreviewProvider {
     static var previews: some View {
+        // here we call the view with a single ProxyAttachment() for
+        // demonstration purposes
         AttachmentsViewMain(attachments: [ProxyAttachment()])
     }
 }
 
 
-// MARK: one AttachmentPreview
+/// a view that previews one attachment file
 struct AttPrev:View{
     
+    // the attachment that is going to be previewed
     var attachment: DisplayAttachment
-    var preload = false
-        
+    // by default false
+    var shouldBeDownloaded = false
+    
+    // whether this attachment is already downloaded to the documents directory
     @State var isDownloaded: Bool = false
+    // used togehter with 'open' button to
+    // open a fullScreenView of a file
     @State var isFullScreen: Bool = false
     
-    func download(){
-        func getDocumentsDirectory() -> URL {
-            let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
-            return paths[0]
-        }
+    /// a func to find the documents directory
+    func getDocumentsDirectory() -> URL {
+        let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
+        return paths[0]
+    }
+    
+    /// a func that downloads the attachment into the documents directory
+    func download() {
         let filename = getDocumentsDirectory().appendingPathComponent(self.attachment.myName)
         
         do {
@@ -101,123 +117,167 @@ struct AttPrev:View{
         self.isDownloaded = true
     }
     
-    //is the file already downloaded?
+    /// a func that checks if an attachment is downloaded into the documents directory or not
+    /// updates the 'isDownloaded' property accordingly
     func getDownloadedState(){
-        func getDocumentsDirectory() -> URL {
-            let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
-            return paths[0]
-        }
         let filename = getDocumentsDirectory().appendingPathComponent(self.attachment.myName)
         
         if FileManager.default.fileExists(atPath: filename.path){self.isDownloaded = true}
     }
     
     var body: some View{
-        if preload {self.download()}
+        if shouldBeDownloaded {
+            self.download()
+        }
         
-        //this QuickLookView has to be defined here so it reloads on every state-change
+        // QuickLookView creates the preview of the file
+        // it has to be defined here to update correctly
         let QLV = QuickLookView(name: self.attachment.myName, data: self.attachment.myData, shallDL: self.isDownloaded)
+        
         return VStack{
-        Group{
-        CardV(title: self.attachment.myName,
+            Group{
+                    CardV(title: self.attachment.myName,
               
-              //those are the actions visable under the cklicked preview
-              actions: self.isDownloaded||self.preload ?
-                [
-                    /*
-                    self.ActionView(NSLocalizedString("delete", comment: ""),
-                        icon: AnyView(Image(systemName: "trash")),
-                        onClick: {
-                            func getDocumentsDirectory() -> URL {
-                                let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
-                                return paths[0]
+                          // these buttons are visable under the preview
+                          // when users click on the preview
+                          actions: self.isDownloaded||self.shouldBeDownloaded ?
+                            // different combination of buttons
+                            // according to downloading status
+                            [
+                                // anyViewDeleteButton
+                                anyViewOpenButton,
+                                anyViewShareButton
+                            ]
+                            :
+                            [
+                                anyViewDownloadButton,
+                                // both lists need same length
+                                // to make appearance the same
+                                AnyView(EmptyView()),
+                                AnyView(EmptyView())
+                            ]
+                            ){
+                                QLV/*TODO:
+                                    .allowsHitTesting(false).disabled(true)*/ //this should make the whole view scrollable averywhere not just on the title
                             }
-                            let filename = getDocumentsDirectory().appendingPathComponent(self.attachment.name!)
-                            
-                            do {
-                                try FileManager.default.removeItem(at: filename)
-                            } catch let error as NSError {
-                                print("Error: \(error)")
-                            }
-                            self.isDownloaded = false
-                        }
-                        
-                    ), */
-                    self.ActionView(NSLocalizedString("open", comment: ""),
-                        icon: AnyView(Image(systemName: "arrow.up.and.down").rotationEffect(.degrees(45))),
-                        onClick: {self.isFullScreen.toggle()}
-                    ),
-                    AnyView(VStack{
-                        shareButton
-                        Text(NSLocalizedString("share", comment: "")).font(.system(size: 12)).foregroundColor(.blue)
-                    })
-                ]
-            :
-                [
-                    self.ActionView(NSLocalizedString("download", comment: ""),
-                        icon: AnyView(Image(systemName: "arrow.down.circle")),
-                        onClick: {
-                            self.download()
-                        }
-                    ),
-                    //odd but both lists need same length
-                    AnyView(EmptyView()),
-                    AnyView(EmptyView())
-                ]
-        ){
-            QLV/*TODO:
-                .allowsHitTesting(false).disabled(true)*/ //this should make the whole view scrollable averywhere not just on the title
-            
-        }
-        }
+    }
+        // preview should resemble the look of A4 format
+        .aspectRatio(100/141, contentMode: .fit)
         .frame(width: UIScreen.main.bounds.width*2/3)//, maxHeight: 500)
         
-            //an invisable NavigationLink to open the preview in fullscreen
-            NavigationLink(destination: QuickLookView(name: self.attachment.myName, data: self.attachment.myData)
-                .navigationBarItems(trailing: shareButton), isActive: self.$isFullScreen){Text("loi")}.hidden()
-            
-        }
-        .onAppear(perform: {
-            self.getDownloadedState()
+        //a hidden NavigationLink to open the preview in fullscreen
+        // seems not to work currently
+            NavigationLink(
+            destination: QuickLookView(name: self.attachment.myName, data: self.attachment.myData)
+                .navigationBarItems(trailing: anyViewShareButton), isActive: self.$isFullScreen) {Text("loi")}.hidden()}
+            .onAppear(
+                perform: {
+                    self.getDownloadedState()
             
-            //download all functionality
-            if self.preload {self.isDownloaded=true; self.download()}
-        })
-        .onDisappear(perform: {
-            func getDocumentsDirectory() -> URL {
-                let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
-                return paths[0]
-            }
-            let filename = getDocumentsDirectory().appendingPathComponent(self.attachment.myName)
+                    //download all functionality
+                    if self.shouldBeDownloaded {self.isDownloaded=true; self.download()}
+                }
+            )
+            // remove file from documents directory
+            .onDisappear(
+                perform: {
+                    let filename = getDocumentsDirectory().appendingPathComponent(self.attachment.myName)
             
-            do {
-                try FileManager.default.removeItem(at: filename)
-            } catch let error as NSError {
-                print("Error: \(error)")
-            }
-            self.isDownloaded = false
-            print("======== Attachment DISAPPEAR -> REMOVE FILES ========")
-        })
+                        do {
+                            try FileManager.default.removeItem(at: filename)
+                        }
+                        catch let error as NSError {print("Error: \(error)")}
+                    self.isDownloaded = false
+                    print("======== Attachment DISAPPEAR -> REMOVE FILES ========")
+                }
+            )
+}
+
+    // an open button converted into an AnyView
+    // should open the view fullscreen
+    var anyViewOpenButton: AnyView {
+        AnyView(
+            Button (
+                action: {
+                    self.isFullScreen.toggle()
+                },
+                label: {
+                    VStack {
+                        Image(systemName: "arrow.up.and.down")
+                            .rotationEffect(.degrees(45))
+                        Text("open").font(.system(size: 12))
+                    }
+                }
+            )
+        )
     }
     
-    var shareButton: some View {
-        return Button(action:{
-            //popover the standart apple sharing stuff
-           /* if let coord = AppDelegate.getAppDelegate().readViewCoordinator {
-                coord.shareData(self.attachment.myData as NSData)
-            }*/
-        }){
-            Image(systemName: "square.and.arrow.up")
-        }
+    // a share button converted into an AnyView
+    var anyViewShareButton: AnyView {
+        AnyView(
+            Button (
+                action: {
+                    // TODO
+                    //popover the standard apple sharing stuff
+                   /* if let coord = AppDelegate.getAppDelegate().readViewCoordinator {
+                        coord.shareData(self.attachment.myData as NSData)
+                    }*/
+                },
+                label: {
+                    VStack {
+                        Image(systemName: "square.and.arrow.up")
+                        Text("share").font(.system(size: 12))
+                    }
+                }
+            )
+        )
+    }
+    
+    // a delete button converted into an AnyView
+    var anyViewDeleteButton: AnyView {
+        AnyView(
+            Button (
+                action: {
+                    // TODO
+                    /*
+                    let filename = getDocumentsDirectory().appendingPathComponent(self.attachment.myName)
+                    
+                    do {
+                        try FileManager.default.removeItem(at: filename)
+                    } catch let error as NSError {
+                        print("Error: \(error)")
+                    }
+                    self.isDownloaded = false
+                */
+                },
+                label: {
+                    VStack {
+                        Image(systemName: "trash")
+                        Text("delete")
+                            .font(.system(size: 12))
+                    }
+                }
+            )
+        )
     }
     
-    //each of those buttons under the card
-    func ActionView( _ text:String,icon: AnyView, onClick:@escaping ()->Void={})-> AnyView{
-        return AnyView(Button(
-            action: onClick
-            ){VStack{
-                icon
-                Text(text).font(.system(size: 12))
-        }})
+    // a download button converted into an AnyView
+    // dowloads the file into the documents directory
+    var anyViewDownloadButton: AnyView {
+        AnyView(
+            Button (
+                action: {
+                    self.download()
+                },
+                label: {
+                    VStack {
+                        Image(systemName: "arrow.down.circle")
+                        Text("download")
+                            .font(.system(size: 12))
+                    }
+                }
+            )
+        )
     }
 }
+