diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 4792143db71833e7bd9bb1dee55c426dbf8404c5..a9661ec41333a01bfa190abad5a90ac3c73868c9 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -1,18 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="deploymentTargetDropDown">
-    <targetSelectedWithDropDown>
-      <Target>
-        <type value="QUICK_BOOT_TARGET" />
-        <deviceKey>
-          <Key>
-            <type value="VIRTUAL_DEVICE_PATH" />
-            <value value="$USER_HOME$/.android/avd/Pixel_4a_API_30.avd" />
-          </Key>
-        </deviceKey>
-      </Target>
-    </targetSelectedWithDropDown>
-    <timeTargetWasSelectedWithDropDown value="2022-03-12T17:07:19.071915Z" />
     <multipleDevicesSelectedInDropDown value="true" />
     <targetsSelectedWithDialog>
       <Target>
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index e9969a1c287d5e9aa14e37d39e99dc13b313c247..7b46144d886271955d8b63fc9240c373129b12d9 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -14,7 +14,6 @@
             <option value="$PROJECT_DIR$/app" />
           </set>
         </option>
-        <option name="resolveModulePerSourceSet" value="false" />
       </GradleProjectSettings>
     </option>
   </component>
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 3f77e19ba36220326829ae6cbc9061b3e836acf6..c64596956dba7d474158f7a6897d8dafdff3d2b7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -20,6 +20,7 @@
         <entry key="app/src/main/res/layout-sw350dp/activity_feedback.xml" value="0.3765625" />
         <entry key="app/src/main/res/layout-sw350dp/blog_post_view.xml" value="0.3765625" />
         <entry key="app/src/main/res/layout-sw350dp/content.xml" value="0.3707692307692308" />
+        <entry key="app/src/main/res/layout-sw350dp/substitution.xml" value="0.375" />
         <entry key="app/src/main/res/layout-w1080dp/content.xml" value="0.35703125" />
         <entry key="app/src/main/res/layout-w320dp/content.xml" value="0.75" />
         <entry key="app/src/main/res/layout/activity_about.xml" value="0.75" />
@@ -39,9 +40,10 @@
         <entry key="app/src/main/res/layout/activity_main2.xml" value="0.2368659420289855" />
         <entry key="app/src/main/res/layout/activity_website.xml" value="0.35778985507246375" />
         <entry key="app/src/main/res/layout/addinfo.xml" value="0.348731884057971" />
-        <entry key="app/src/main/res/layout/blog_activity_details.xml" value="0.9" />
-        <entry key="app/src/main/res/layout/blog_content.xml" value="0.1" />
+        <entry key="app/src/main/res/layout/blog_activity_details.xml" value="0.5638888888888889" />
+        <entry key="app/src/main/res/layout/blog_content.xml" value="0.67" />
         <entry key="app/src/main/res/layout/blog_post_view.xml" value="0.67" />
+        <entry key="app/src/main/res/layout/blogcomment.xml" value="1.0133333333333334" />
         <entry key="app/src/main/res/layout/content.xml" value="0.67" />
         <entry key="app/src/main/res/layout/dialog_update_news.xml" value="0.3765625" />
         <entry key="app/src/main/res/layout/hgktube_video.xml" value="0.3591485507246377" />
@@ -53,7 +55,7 @@
         <entry key="app/src/main/res/layout/menu/share_menu.xml" value="0.7255639097744361" />
         <entry key="app/src/main/res/layout/nav_header.xml" value="0.29483695652173914" />
         <entry key="app/src/main/res/layout/settings_activity.xml" value="0.24114583333333334" />
-        <entry key="app/src/main/res/layout/substitution.xml" value="0.33" />
+        <entry key="app/src/main/res/layout/substitution.xml" value="0.9" />
         <entry key="app/src/main/res/menu/nav_menu.xml" value="0.26979166666666665" />
         <entry key="app/src/main/res/menu/search_menu.xml" value="0.75" />
         <entry key="app/src/main/res/menu/share_menu.xml" value="0.53125" />
diff --git a/app/build.gradle b/app/build.gradle
index ed7fc93558d6f342bfdf69bd70759497e12359e7..ac9a483929210d3f933758240b0e0ea67317016b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@ android {
         applicationId "de.kleinhti.hgkapp"
         minSdk 21
         targetSdk 30
-        versionCode 13
-        versionName '1.0.0'
+        versionCode 16
+        versionName '1.0.3'
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         signingConfig signingConfigs.debug
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index d2ff773957a9e2c0a1f0649a8e13425f5b77afad..48432c8a3aee8bcc3b9a41f904af3bd43e9abc97 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -11,8 +11,8 @@
       "type": "SINGLE",
       "filters": [],
       "attributes": [],
-      "versionCode": 12,
-      "versionName": "Alpha 0.2.1",
+      "versionCode": 16,
+      "versionName": "1.0.3",
       "outputFile": "app-release.apk"
     }
   ],
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 56a69b99ed1168e1bc2664a7ef4059161bcca57a..9d664642060d97c968083ca1e140ac6f6d84bcf9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="de.kleinhti.hgkapp"
-    android:versionCode="13"
+    android:versionCode="16"
     android:versionCodeMajor="1"
-    android:versionName="1.0.0">
+    android:versionName="1.0.3">
 
     <uses-permission android:name="android.permission.INTERNET"/>
 
diff --git a/app/src/main/java/de/kleinhti/hgkapp/MainActivity.java b/app/src/main/java/de/kleinhti/hgkapp/MainActivity.java
index f5facc1fa560c508266ef4854a3a8ff2e3ffaf67..efd14e02c2d65b98866f3987e5369dfabf0d45aa 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/MainActivity.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/MainActivity.java
@@ -82,8 +82,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
 
         registerListeners(); /**Registers required listeners for elements in MainActivity*/
         //updateApplication();
-        retrievePlanData();
         new Update().execute();
+        retrievePlanData();
 
         new Changelog(this).checkForLastChangelog();
     }
diff --git a/app/src/main/java/de/kleinhti/hgkapp/SettingsActivity.java b/app/src/main/java/de/kleinhti/hgkapp/SettingsActivity.java
index eba9e168d5ea759d7265c473ac3756dacbb74a1d..57d3d65aded525d6322e7f2e030aa747e1c08c57 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/SettingsActivity.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/SettingsActivity.java
@@ -17,6 +17,7 @@ import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceManager;
 
 import de.kleinhti.hgkapp.utils.Changelog;
+import de.kleinhti.hgkapp.utils.Settings;
 import de.kleinhti.hgkapp.utils.ThemeHandler;
 import de.kleinhti.hgkapp.utils.Updater;
 
diff --git a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogActivity.java b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogActivity.java
index e0fb3c0c11e7e48edbc40d5196a6b6ea7ee5c615..c447872eab9468af6f394826e579e5b6b4439028 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogActivity.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogActivity.java
@@ -39,7 +39,7 @@ public class BlogActivity extends AppCompatActivity {
 
         GridLayoutManager manager = new GridLayoutManager(this, 1);
         post_list.setLayoutManager(manager);
-        adapter = new PostsAdapter(posts);
+        adapter = new PostsAdapter(posts, getApplicationContext());
         post_list.setAdapter(adapter);
 
         new Blog().execute();
@@ -47,7 +47,7 @@ public class BlogActivity extends AppCompatActivity {
 
     public void updatePostList() {
         adapter.notifyDataSetChanged();
-        adapter = new PostsAdapter(posts);
+        adapter = new PostsAdapter(posts, getApplicationContext());
         post_list.setAdapter(adapter);
     }
 
diff --git a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogComment.java b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogComment.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef1a754f76c6c93ddf6aec96fbbe6b42f2e514a7
--- /dev/null
+++ b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogComment.java
@@ -0,0 +1,41 @@
+package de.kleinhti.hgkapp.humboldtblog;
+
+public class BlogComment {
+
+    private String author;
+    private String text;
+    private String date;
+    private String avatar_url;
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    public String getAvatar_url() {
+        return avatar_url;
+    }
+
+    public void setAvatar_url(String avatar_url) {
+        this.avatar_url = avatar_url;
+    }
+}
diff --git a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogHandler.java b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogHandler.java
index d3e6df0835be530fb9718eb248b9cada42adcb20..9dfce71618f68f2852f8952a9260112ad170239c 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogHandler.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/BlogHandler.java
@@ -15,6 +15,7 @@ import java.util.HashMap;
 
 import de.kleinhti.hgkapp.http.HTTP;
 import de.kleinhti.hgkapp.http.Routes;
+import de.kleinhti.hgkapp.objects.Response;
 
 public class BlogHandler {
 
@@ -27,6 +28,7 @@ public class BlogHandler {
 
     /**
      * Retrieves all authors from server and returns them as HashMap to get the authors name by his id
+     *
      * @return HashMap<authors id, authors name>
      */
     private HashMap getAuthors() {
@@ -48,12 +50,12 @@ public class BlogHandler {
 
     /**
      * Retrieves the previewimageurl of a post
-     * @param object (post)
+     *
      * @return String (url)
      */
-    private String getPictureUrl(JSONObject object) {
+    public String getPictureUrl(String url) {
         try {
-            JSONObject response = new JSONObject(HTTP.request(object.getJSONObject("_links").getJSONArray("wp:featuredmedia").getJSONObject(0).getString("href"), "", "", "GET", null, con).response);
+            JSONObject response = new JSONObject(HTTP.request(url, "", "", "GET", null, con).response);
             return response.getJSONObject("guid").getString("rendered");
         } catch (JSONException e) {
             Log.d("Tag", "Kein Bild vorhanden..");
@@ -66,6 +68,7 @@ public class BlogHandler {
 
     /**
      * Retrieves all posts from the server. (Only the recent x ones, defined by value in {@link de.kleinhti.hgkapp.SettingsActivity})
+     *
      * @return ArrayList (all recent posts)
      */
     public ArrayList getPosts() {
@@ -83,11 +86,18 @@ public class BlogHandler {
                 Post p = new Post();
                 JSONObject object_data = request.getJSONObject(i);
 
+                p.setPostID(Integer.parseInt(object_data.getString("id")));
                 p.setDate(object_data.getString("date"));
                 p.setTitle(object_data.getJSONObject("title").getString("rendered"));
                 p.setContent(object_data.getJSONObject("content").getString("rendered"));
                 p.setAuthor((String) authors.get(object_data.getString("author")));
-                p.setImageurl(getPictureUrl(object_data));
+                if (i <= 2) {
+                    if(object_data.getJSONObject("_links").has("wp:featuredmedia"))
+                        p.setImageurl(getPictureUrl(object_data.getJSONObject("_links").getJSONArray("wp:featuredmedia").getJSONObject(0).getString("href")));
+                }
+                else if (object_data.getJSONObject("_links").has("wp:featuredmedia"))
+                    p.setImageurl(object_data.getJSONObject("_links").getJSONArray("wp:featuredmedia").getJSONObject(0).getString("href"));
+                else p.setImageurl("");
                 p.setShareUrl(object_data.getString("link"));
 
                 Log.d("Blog", p.getAuthor() + " " + p.getTitle());
@@ -102,4 +112,30 @@ public class BlogHandler {
         }
         return null;
     }
+
+    public ArrayList<BlogComment> getComments(int postID) {
+
+
+        ArrayList<BlogComment> blogComments = new ArrayList<>();
+        try {
+            Response response = HTTP.request(Routes.BLOG_DOMAIN + "/wp/v2/comments/?post=" + postID, "", "", "GET", null, con);
+            JSONArray commentsArray = new JSONArray(response.response);
+
+            for (int i = 0; i < commentsArray.length(); i++) {
+                JSONObject json = commentsArray.getJSONObject(i);
+
+                BlogComment com = new BlogComment();
+                com.setAuthor(json.getString("author_name"));
+                com.setText((json.getJSONObject("content")).getString("rendered"));
+                com.setDate(json.getString("date"));
+                com.setAvatar_url(json.getJSONObject("author_avatar_urls").getString("96"));
+
+                blogComments.add(com);
+            }
+
+        } catch (IOException | JSONException e) {
+            e.printStackTrace();
+        }
+        return blogComments;
+    }
 }
diff --git a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/CommentAdapter.java b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/CommentAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f6fba5f54415768ea07c1d706ab2a0a7904212b
--- /dev/null
+++ b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/CommentAdapter.java
@@ -0,0 +1,71 @@
+package de.kleinhti.hgkapp.humboldtblog;
+
+import android.text.Html;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.squareup.picasso.Picasso;
+
+import java.util.ArrayList;
+
+import de.kleinhti.hgkapp.R;
+
+public class CommentAdapter extends RecyclerView.Adapter<CommentAdapter.ViewHolder> {
+
+    private ArrayList<BlogComment> comments;
+
+    public CommentAdapter(ArrayList comments) {
+        Log.d("Tag", "jup");
+        this.comments = comments;
+    }
+
+    @NonNull
+    @Override
+    public CommentAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        View v = LayoutInflater.from(parent.getContext()).inflate((R.layout.blogcomment), parent, false);
+
+        return new CommentAdapter.ViewHolder(v);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull CommentAdapter.ViewHolder holder, int position) {
+
+        Log.d("Tag", "Bin bei" + position);
+        holder.author.setText(comments.get(position).getAuthor());
+        holder.date.setText(DateFormatter.formatBlogDate(comments.get(position).getDate()));
+        holder.text.setText(Html.fromHtml(comments.get(position).getText()));
+
+        Picasso.get().load(comments.get(position).getAvatar_url()).placeholder(R.drawable.blog_logo_500px).error(R.drawable.blog_logo_500px).centerCrop(20).resize(96, 96).into(holder.avatar);
+
+    }
+
+    @Override
+    public int getItemCount() {
+        return comments.size();
+    }
+
+    public class ViewHolder extends RecyclerView.ViewHolder {
+
+        ImageView avatar;
+        TextView author;
+        TextView date;
+        TextView text;
+        View view;
+
+        public ViewHolder(@NonNull View itemView) {
+            super(itemView);
+            view = itemView;
+            avatar = itemView.findViewById(R.id.blog_comment_avatar);
+            author = itemView.findViewById(R.id.blog_comment_author);
+            date = itemView.findViewById(R.id.blog_comment_date);
+            text = itemView.findViewById(R.id.blog_comment_text);
+        }
+    }
+}
diff --git a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Details.java b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Details.java
index ffb12a7030f32e8afab1642b2a36b7d97c803da7..d9007768c48063f8e65740dc2221c0c3c83be7ef 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Details.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Details.java
@@ -1,7 +1,9 @@
 package de.kleinhti.hgkapp.humboldtblog;
 
 import android.annotation.SuppressLint;
+import android.content.Context;
 import android.content.Intent;
+import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Bundle;
 import android.text.Html;
@@ -13,9 +15,13 @@ import android.widget.TextView;
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.squareup.picasso.Picasso;
 
+import java.util.ArrayList;
+
 import de.kleinhti.hgkapp.R;
 
 public class Details extends AppCompatActivity {
@@ -25,8 +31,14 @@ public class Details extends AppCompatActivity {
     TextView date_view;
     TextView content_view;
 
+    RecyclerView comment_list;
+    CommentAdapter adapter;
+
+    private int postID;
     private String title;
     private String shareUrl;
+    private ArrayList<BlogComment> comments = new ArrayList<>();
+    private Context con;
 
     @SuppressLint("NewApi")
     @RequiresApi(api = Build.VERSION_CODES.M)
@@ -35,12 +47,16 @@ public class Details extends AppCompatActivity {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.blog_activity_details);
 
+        con = this;
+
         image_view = findViewById(R.id.blog_details_image);
         author_view = findViewById(R.id.blog_details_author);
         date_view = findViewById(R.id.blog_details_timestamp);
         content_view = findViewById(R.id.blog_details_text);
+        comment_list = findViewById(R.id.blog_comment_list);
 
         Intent data = getIntent();
+        postID = data.getIntExtra("postID", 0);
         title = data.getStringExtra("title");
         String content = data.getStringExtra("content");
         String imageurl = data.getStringExtra("picture");
@@ -56,6 +72,13 @@ public class Details extends AppCompatActivity {
         author_view.setText(getString(R.string.blog_author) + ": " + author);
         date_view.setText(timestamp);
         Picasso.get().load(imageurl).placeholder(R.drawable.blog_logo_500px).error(R.drawable.blog_logo_500px).resize(400, 0).into(image_view);
+
+        GridLayoutManager manager = new GridLayoutManager(this, 1);
+        comment_list.setLayoutManager(manager);
+        adapter = new CommentAdapter(comments);
+        comment_list.setAdapter(adapter);
+
+        new Comments().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
     }
 
 
@@ -70,15 +93,32 @@ public class Details extends AppCompatActivity {
         if (item.getItemId() == android.R.id.home) {
             onBackPressed();
         } else if (item.getItemId() == R.id.app_bar_share) {
-            shareArticel();
+            shareArticle();
         }
         return super.onOptionsItemSelected(item);
     }
 
-    private void shareArticel() {
+    private void shareArticle() {
         Intent shareIntent = new Intent(Intent.ACTION_SEND);
         shareIntent.setType("text/plain");
         shareIntent.putExtra(Intent.EXTRA_TEXT, shareUrl + "\n\n" + title);
         startActivity(Intent.createChooser(shareIntent, "Wähle aus, wie Du teilen möchtest"));
     }
+
+    private class Comments extends AsyncTask{
+
+        @Override
+        protected Object doInBackground(Object[] objects) {
+            comments = new BlogHandler(con).getComments(postID);
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(Object o) {
+            adapter = new CommentAdapter(comments);
+            comment_list.setAdapter(adapter);
+            adapter.notifyDataSetChanged();
+            super.onPostExecute(o);
+        }
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Post.java b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Post.java
index 681e744e31c7cfbedaf6adcfe9f8393c172a6c52..4e85bae57ccd20d92659933dbb55fb51b304ead4 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Post.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/Post.java
@@ -8,6 +8,15 @@ public class Post {
     private String imageurl;
     private String author;
     private String shareUrl;
+    private int postID;
+
+    public int getPostID() {
+        return postID;
+    }
+
+    public void setPostID(int postID) {
+        this.postID = postID;
+    }
 
     public String getShareUrl() {
         return shareUrl;
diff --git a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/PostsAdapter.java b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/PostsAdapter.java
index f81aeafae887e509d41ed483a07788953ffe009f..b61438a92c4815bc61cfd6759a1d0976f5b96b27 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/PostsAdapter.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/humboldtblog/PostsAdapter.java
@@ -1,7 +1,9 @@
 package de.kleinhti.hgkapp.humboldtblog;
 
 import android.annotation.SuppressLint;
+import android.content.Context;
 import android.content.Intent;
+import android.os.AsyncTask;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -14,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.squareup.picasso.Picasso;
 
+import java.util.HashMap;
 import java.util.List;
 
 import de.kleinhti.hgkapp.R;
@@ -21,9 +24,16 @@ import de.kleinhti.hgkapp.R;
 public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.ViewHolder> {
 
     List<Post> all_posts;
+    Context con;
+    AsyncTask asyncTask;
 
-    public PostsAdapter(List<Post> all_posts){
+    private HashMap<Integer, String> imageUrls = new HashMap();
+
+    public PostsAdapter(List<Post> all_posts, Context con) {
         this.all_posts = all_posts;
+        this.con = con;
+        asyncTask = new Picture();
+        asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
     }
 
 
@@ -42,7 +52,11 @@ public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.ViewHolder>
         holder.post_title.setText(all_posts.get(position).getTitle());
         holder.post_author.setText("Autor: " + all_posts.get(position).getAuthor());
         holder.post_timestamp.setText(DateFormatter.formatBlogDate(all_posts.get(position).getDate()));
-        Picasso.get().load(all_posts.get(position).getImageurl()).placeholder(R.drawable.blog_logo_500px).error(R.drawable.blog_logo_500px).resize(400, 0).into(holder.post_image);
+
+        String imageURL = imageUrls.get(position);
+        if (position<=2)
+            imageURL = all_posts.get(position).getImageurl();
+        Picasso.get().load(imageURL).placeholder(R.drawable.blog_logo_500px).error(R.drawable.blog_logo_500px).resize(400, 0).into(holder.post_image);
 
 
         //handle clicks on posts
@@ -51,6 +65,7 @@ public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.ViewHolder>
             @Override
             public void onClick(View v) {
                 Intent i = new Intent(v.getContext(), Details.class);
+                i.putExtra("postID", all_posts.get(position).getPostID());
                 i.putExtra("title", all_posts.get(position).getTitle());
                 i.putExtra("content", all_posts.get(position).getContent());
                 i.putExtra("picture", all_posts.get(position).getImageurl());
@@ -63,14 +78,12 @@ public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.ViewHolder>
     }
 
 
-
-
     @Override
     public int getItemCount() {
         return all_posts.size();
     }
 
-    public class ViewHolder extends RecyclerView.ViewHolder{
+    public class ViewHolder extends RecyclerView.ViewHolder {
 
         ImageView post_image;
         TextView post_title;
@@ -88,4 +101,20 @@ public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.ViewHolder>
             post_timestamp = itemView.findViewById(R.id.post_timestamp);
         }
     }
+
+    private class Picture extends AsyncTask {
+
+        @Override
+        protected Object doInBackground(Object[] objects) {
+            Log.d("Tag", String.valueOf(all_posts.size()));
+            for (int i = 6; i < all_posts.size(); i++) {
+                Log.d("Tag", "Bin bei" + i);
+                if (all_posts.get(i).getImageurl() != "")
+                    imageUrls.put(i, new BlogHandler(con).getPictureUrl(all_posts.get(i).getImageurl()));
+                all_posts.get(i).setImageurl(imageUrls.get(i));
+            }
+            return null;
+        }
+    }
+
 }
diff --git a/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanBuilder.java b/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanBuilder.java
index d9514d69ec28346f3e5f93196402011fb439aa50..4da0b1b2bc559e4d135026b2482dfed4a272914b 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanBuilder.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanBuilder.java
@@ -96,6 +96,7 @@ public class PlanBuilder {
 
             Settings settings = new Settings(con);
 
+            substitutions = PlanSort.sortSubstitutionsByLessons(substitutions);
             if (settings.getBoolean("settings_general_clean_plan"))
                 substitutions = PlanSort.removeUselessSubstitution(substitutions);
             if (type.equals(Plan.USER_TYPE.TEACHER) & settings.getBoolean("settings_general_sort_plan"))
diff --git a/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanSort.java b/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanSort.java
index 855e633b2c0b6f8faa173124077394eb9ae9b9c9..41d58ae47482cc60cbe834610d6845a82a5ca92b 100644
--- a/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanSort.java
+++ b/app/src/main/java/de/kleinhti/hgkapp/utils/plan/PlanSort.java
@@ -1,9 +1,14 @@
 package de.kleinhti.hgkapp.utils.plan;
 
 import android.annotation.SuppressLint;
+import android.os.Build;
 import android.util.Log;
 
+import androidx.annotation.RequiresApi;
+
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 
 import de.kleinhti.hgkapp.objects.Substitution;
 
@@ -12,6 +17,18 @@ public class PlanSort {
     private static final String NO_CLASS_ENTRY = "null";
     private static final String NO_TEXT_ENTRY = "[für unbekannte Gruppe]";
 
+    @RequiresApi(api = Build.VERSION_CODES.N)
+    public static ArrayList sortSubstitutionsByLessons(ArrayList<Substitution> substitutions) {
+        ArrayList<Substitution> subs = substitutions;
+        try {
+            Collections.sort(subs, Comparator.comparingInt(o -> retrieveLessonfromString(o.lesson)));
+        } catch (Exception e) {
+            e.printStackTrace();
+            Log.d("Tag", "Mal wieder eine Stunde, die ein komisches Element enthält..");
+        }
+        return subs;
+    }
+
     /**
      * Removes weird and unnecessary substitutions
      *
@@ -23,7 +40,7 @@ public class PlanSort {
         for (int i = 0; i < substitutions.size(); i++) {
             Substitution sub = substitutions.get(i);
             Log.d("Tag", sub.text + sub.text.length() + " " + NO_TEXT_ENTRY.length());
-            if ((sub.cls !=(NO_CLASS_ENTRY) || ((!sub.text.contains(NO_TEXT_ENTRY)) || !(sub.text.length() <= NO_TEXT_ENTRY.length() + 2)) && !sub.text.isEmpty()))
+            if ((sub.cls != (NO_CLASS_ENTRY) || ((!sub.text.contains(NO_TEXT_ENTRY)) || !(sub.text.length() <= NO_TEXT_ENTRY.length() + 2)) && !sub.text.isEmpty()))
                 cleaned_substitutions.add(sub);
         }
         return cleaned_substitutions;
@@ -52,4 +69,12 @@ public class PlanSort {
             favourite_substitutions.add(sorted_substitutions.get(i));
         return favourite_substitutions;
     }
+
+    private static int retrieveLessonfromString(String str) {
+        if (str.contains("/"))
+            return Integer.parseInt(str.split("/")[0]);
+        else if (str.contains("-"))
+            return Integer.parseInt(str.split("-")[0]);
+        return Integer.parseInt(str);
+    }
 }
diff --git a/app/src/main/res/layout-sw350dp/substitution.xml b/app/src/main/res/layout-sw350dp/substitution.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4564840fd7018c233e8abf59f4cc7c2758c11162
--- /dev/null
+++ b/app/src/main/res/layout-sw350dp/substitution.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginBottom="1dp"
+    android:background="@drawable/round_background_substitutions"
+    android:minHeight="50dp">
+
+    <TextView
+        android:id="@+id/sub_lesson"
+        android:layout_width="47dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:elegantTextHeight="false"
+        android:gravity="center"
+        android:minHeight="40dp"
+        android:text="1"
+        android:textSize="16sp"
+        android:textStyle="bold"
+        app:layout_constrainedHeight="true"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.0"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/sub_class"
+        android:layout_width="60dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:elegantTextHeight="false"
+        android:gravity="center"
+        android:minHeight="40dp"
+        android:text="1a"
+        android:textSize="16sp"
+        android:textStyle="bold"
+        app:layout_constrainedHeight="true"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.0"
+        app:layout_constraintStart_toEndOf="@+id/sub_lesson"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/sub_text"
+        android:layout_width="253dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginEnd="16dp"
+        android:elegantTextHeight="false"
+        android:gravity="center_vertical"
+        android:minHeight="40dp"
+        android:text="Hier passiert nix.."
+        android:textSize="16sp"
+        android:textStyle="bold"
+        app:layout_constrainedHeight="true"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.0"
+        app:layout_constraintStart_toEndOf="@+id/sub_class"
+        app:layout_constraintTop_toTopOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/blog_activity_details.xml b/app/src/main/res/layout/blog_activity_details.xml
index 0fa62fafb353ff93a35bf838cad2c86751bd3735..0d27d716162706c26353736ca77d3be941a6b7e3 100644
--- a/app/src/main/res/layout/blog_activity_details.xml
+++ b/app/src/main/res/layout/blog_activity_details.xml
@@ -35,6 +35,7 @@
                     android:id="@+id/blog_details_author"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
+                    android:layout_marginStart="4dp"
                     android:text="TextView"
                     android:textColor="@color/colorFontPrimary"
                     android:textStyle="bold"
@@ -47,6 +48,7 @@
                     android:id="@+id/blog_details_timestamp"
                     android:layout_width="wrap_content"
                     android:layout_height="match_parent"
+                    android:layout_marginEnd="4dp"
                     android:text="TextView"
                     android:textAlignment="textEnd"
                     android:textColor="@color/colorFontPrimary"
@@ -55,15 +57,39 @@
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintTop_toTopOf="parent"
                     app:layout_constraintVertical_bias="0.0" />
-            </androidx.constraintlayout.widget.ConstraintLayout>
 
-            <TextView
-                android:id="@+id/blog_details_text"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
-                android:text="TextView"
-                android:textColor="@color/colorFontPrimary" />
+                <TextView
+                    android:id="@+id/blog_details_text"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="4dp"
+                    android:layout_marginTop="8dp"
+                    android:layout_marginEnd="4dp"
+                    android:text="TextView"
+                    android:textColor="@color/colorFontPrimary"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/blog_details_author" />
+
+                <TextView
+                    android:id="@+id/textView"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="16dp"
+                    android:text="Kommentare"
+                    android:textStyle="bold"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/blog_details_text" />
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/blog_comment_list"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dp"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/textView" />
+
+            </androidx.constraintlayout.widget.ConstraintLayout>
 
         </LinearLayout>
     </ScrollView>
diff --git a/app/src/main/res/layout/blogcomment.xml b/app/src/main/res/layout/blogcomment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..283f3212a386fcab25138adafda62b3f348b9afc
--- /dev/null
+++ b/app/src/main/res/layout/blogcomment.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <ImageView
+        android:id="@+id/blog_comment_avatar"
+        android:layout_width="79dp"
+        android:layout_height="77dp"
+        android:layout_marginBottom="16dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:srcCompat="@tools:sample/avatars" />
+
+    <TextView
+        android:id="@+id/blog_comment_text"
+        android:layout_width="197dp"
+        android:layout_height="51dp"
+        android:layout_marginStart="8dp"
+        android:layout_marginTop="8dp"
+        android:text="TextView"
+        app:layout_constraintStart_toEndOf="@+id/blog_comment_avatar"
+        app:layout_constraintTop_toBottomOf="@+id/blog_comment_date" />
+
+    <TextView
+        android:id="@+id/blog_comment_date"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="8dp"
+        android:text="TextView"
+        android:textStyle="bold"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/blog_comment_author"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:text="TextView"
+        android:textStyle="bold"
+        app:layout_constraintStart_toEndOf="@+id/blog_comment_avatar"
+        app:layout_constraintTop_toTopOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/content.xml b/app/src/main/res/layout/content.xml
index fdc9d035195aaba2cce811d4eb114f4034eeca7d..c292eb1ba008b29c97b87350ff281aa1d71cb859 100644
--- a/app/src/main/res/layout/content.xml
+++ b/app/src/main/res/layout/content.xml
@@ -104,7 +104,7 @@
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/vplan_list"
             android:layout_width="match_parent"
-            android:layout_height="461dp"
+            android:layout_height="wrap_content"
             android:layout_marginTop="1dp"
             app:layout_constrainedHeight="true"
             app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/substitution.xml b/app/src/main/res/layout/substitution.xml
index 2e77b2340f34aa863a5ef2c99ad46e100e4f1423..13d5d2b771199dcd6965ebf77242f88c582b348a 100644
--- a/app/src/main/res/layout/substitution.xml
+++ b/app/src/main/res/layout/substitution.xml
@@ -12,7 +12,7 @@
         android:id="@+id/sub_lesson"
         android:layout_width="47dp"
         android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
+        android:layout_marginStart="16dp"
         android:elegantTextHeight="false"
         android:gravity="center"
         android:minHeight="40dp"
@@ -30,6 +30,7 @@
         android:id="@+id/sub_class"
         android:layout_width="60dp"
         android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
         android:elegantTextHeight="false"
         android:gravity="center"
         android:minHeight="40dp"
@@ -45,10 +46,10 @@
 
     <TextView
         android:id="@+id/sub_text"
-        android:layout_width="286dp"
+        android:layout_width="156dp"
         android:layout_height="wrap_content"
         android:layout_marginStart="8dp"
-        android:layout_marginEnd="8dp"
+        android:layout_marginEnd="24dp"
         android:elegantTextHeight="false"
         android:gravity="center_vertical"
         android:minHeight="40dp"
diff --git a/app/src/main/res/raw/changelog.txt b/app/src/main/res/raw/changelog.txt
index f0c6815c1eac5510a5a9be95e5871a16dc4c9238..816deaca16b03bc7c47713c875b8da1161dd89c7 100644
--- a/app/src/main/res/raw/changelog.txt
+++ b/app/src/main/res/raw/changelog.txt
@@ -1,3 +1,12 @@
+<h4>Version 1.0.3</h4>
+<li>Hotfix für Crash der App direkt nach dem Start
+<h4>Version 1.0.2</h4>
+<li>Fehler bei der Sortierung der Stunden behoben
+<h3>Version 1.0.1</h3>
+<li>Vertretungen werden nun nach Stunden sortiert
+<li>Anpassungen an der Darstellung der Vertretungen auf kleineren Geräten
+<li>Kommentare werden jetzt in #umboldt angezeigt
+<li>Massive Performance- und appinterne Verbesserungen
 <h3>Version 1.0.0</h3>
 <li>Erster Stable-Release - Veröffentlichung der App
 <h3>Version 0.2.1</h3>
diff --git a/build.gradle b/build.gradle
index f3204131d5366a68be0a8282764eede4d246a165..3f78b950158fbd9585396f2fd001c293cc4f3ee9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.1.2'
+        classpath 'com.android.tools.build:gradle:7.1.3'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files