diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java
index f44b73151c48913bee533092e59ba114bc457064..cfcaf935b3b5d8f2c14e5a5ac4df6d05439bb791 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignActivity.java
@@ -53,7 +53,7 @@ public class CampaignActivity extends RecyclerViewActivity {
                     .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialogInterface, int i) {
-                            ((CampaignAdapter) getAdapter()).addItem(((EditText) dialogView.findViewById(R.id.campagin_name)).getText().toString(), CampaignType.valueOfDisplayName(typeSpinner.getSelectedItem().toString()));
+                            ((CampaignAdapter) getAdapter()).addItem(((EditText) dialogView.findViewById(R.id.campaign_name)).getText().toString(), CampaignType.valueOfDisplayName(typeSpinner.getSelectedItem().toString()));
                         }
                     })
                     .create();
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java
index 8395947252f644bc74599774d030fac236e2418e..48055f92feb39134f74edae7a00b67417ec25575 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/CampaignDetailsActivity.java
@@ -4,6 +4,7 @@ import android.os.Bundle;
 import android.support.v7.widget.LinearLayoutManager;
 import android.view.Menu;
 import android.view.MenuItem;
+import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignDetailsAdapter;
 import com.eyecreate.miceandmystics.miceandmystics.model.Campaign;
 
 
@@ -17,6 +18,7 @@ public class CampaignDetailsActivity extends RecyclerViewActivity {
         setTitle(getIntent().getStringExtra("campaignName"));
         campaign = MiceAndMysticsApplication.getRealmInstance().where(Campaign.class).equalTo("campaignName",getIntent().getStringExtra("campaignName")).findFirst();
         setLayoutManager(new LinearLayoutManager(this));
+        setAdapter(new CampaignDetailsAdapter(campaign));
     }
 
 
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java
index ea1d41c199a957f1349fb522123aed1c03f4c627..ce051d5eac9545deb0bab72c7e9e5c5bc27c3531 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignAdapter.java
@@ -7,10 +7,10 @@ import android.view.ViewGroup;
 import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication;
 import com.eyecreate.miceandmystics.miceandmystics.R;
 import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CampaignType;
-import com.eyecreate.miceandmystics.miceandmystics.viewholders.Campaign;
+import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignViewHolder;
 import io.realm.RealmResults;
 
-public class CampaignAdapter extends RecyclerView.Adapter<Campaign> {
+public class CampaignAdapter extends RecyclerView.Adapter<CampaignViewHolder> {
 
     LayoutInflater inflater;
     RealmResults<com.eyecreate.miceandmystics.miceandmystics.model.Campaign> campaigns;
@@ -20,13 +20,13 @@ public class CampaignAdapter extends RecyclerView.Adapter<Campaign> {
     }
 
     @Override
-    public Campaign onCreateViewHolder(ViewGroup parent, int viewType) {
+    public CampaignViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         if(inflater == null) inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        return new Campaign(inflater.inflate(R.layout.item_campaign,parent,false),this);
+        return new CampaignViewHolder(inflater.inflate(R.layout.item_campaign,parent,false),this);
     }
 
     @Override
-    public void onBindViewHolder(Campaign holder, int position) {
+    public void onBindViewHolder(CampaignViewHolder holder, int position) {
         holder.bindModel(campaigns.get(position));
     }
 
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java
index d7bb3ea90262e74bd7c9dd1fbe6c8398ef4be0a1..31f91d3c62b314aa33c4dc535ba6389577ff2945 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/adapters/CampaignDetailsAdapter.java
@@ -1,22 +1,80 @@
 package com.eyecreate.miceandmystics.miceandmystics.adapters;
 
+import android.content.Context;
 import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
 import android.view.ViewGroup;
-import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignDetails;
+import com.eyecreate.miceandmystics.miceandmystics.MiceAndMysticsApplication;
+import com.eyecreate.miceandmystics.miceandmystics.R;
+import com.eyecreate.miceandmystics.miceandmystics.model.*;
+import com.eyecreate.miceandmystics.miceandmystics.model.Character;
+import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterNames;
+import com.eyecreate.miceandmystics.miceandmystics.model.Enums.CharacterType;
+import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignDetailsViewHolder;
+import com.eyecreate.miceandmystics.miceandmystics.viewholders.CampaignHeaderViewHolder;
+
+import java.util.UUID;
+
+public class CampaignDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+
+    LayoutInflater inflater;
+    Campaign currentCampaign;
+
+    public CampaignDetailsAdapter(Campaign currentCampaign) {
+        this.currentCampaign = currentCampaign;
+    }
 
-public class CampaignDetailsAdapter extends RecyclerView.Adapter<CampaignDetails> {
     @Override
-    public CampaignDetails onCreateViewHolder(ViewGroup parent, int viewType) {
-        return null;
+    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        if(inflater == null) inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        if(viewType==R.id.campaignDetailMainHeader) {
+            return new CampaignHeaderViewHolder(inflater.inflate(R.layout.item_campaign_header,parent,false));
+        } else {
+            return new CampaignDetailsViewHolder(inflater.inflate(R.layout.item_campaign_details,parent,false),this);
+        }
     }
 
     @Override
-    public void onBindViewHolder(CampaignDetails holder, int position) {
+    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+        if(holder instanceof CampaignHeaderViewHolder) {
+            ((CampaignHeaderViewHolder)holder).bindModel(currentCampaign);
+        } else {
+            ((CampaignDetailsViewHolder)holder).bindModel(currentCampaign.getCurrentCharacters().get(position-1)); //Here's that one again making the position value related to characters again.
+        }
+    }
 
+    public void fullRefresh() {
+        notifyDataSetChanged();
+    }
+
+    public void addCharacter(CharacterNames name, Player player) {
+        MiceAndMysticsApplication.getRealmInstance().beginTransaction();
+        Character character = MiceAndMysticsApplication.getRealmInstance().createObject(Character.class);
+        character.setUuid(UUID.randomUUID().toString());
+        character.setCharacterName(name.name());
+        character.setControllingPlayer(player);
+        MiceAndMysticsApplication.getRealmInstance().commitTransaction();
+        fullRefresh();
+    }
+
+    public void removeCharacter(Character character) {
+        MiceAndMysticsApplication.getRealmInstance().beginTransaction();
+        character.removeFromRealm();
+        MiceAndMysticsApplication.getRealmInstance().commitTransaction();
+        fullRefresh();
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        if(position == 0) {
+            return R.id.campaignDetailMainHeader;
+        } else {
+            return R.id.campaignDetailItem;
+        }
     }
 
     @Override
     public int getItemCount() {
-        return 0;
+        return currentCampaign.getCurrentCharacters().size()+1; //The plus one if for header. May expand this for other kinds of details.
     }
 }
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java
index 90ec8319439169488808fda19d9f5f3d860150f0..6537ab19eb680e4cccfb3d699befc707fd9dae1c 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Ability.java
@@ -3,13 +3,16 @@ package com.eyecreate.miceandmystics.miceandmystics.model;
 import io.realm.RealmObject;
 import io.realm.annotations.PrimaryKey;
 
+import java.util.UUID;
+
 public class Ability extends RealmObject {
     @PrimaryKey
+    private String uuid;
     private String abilityName;
 
     public Ability() {}
 
-    public Ability(String abilityName) {setAbilityName(abilityName);}
+    public Ability(String abilityName) {setAbilityName(abilityName);setUuid(UUID.randomUUID().toString());}
 
     public String getAbilityName() {
         return abilityName;
@@ -18,4 +21,12 @@ public class Ability extends RealmObject {
     public void setAbilityName(String abilityName) {
         this.abilityName = abilityName;
     }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
 }
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java
index d32945a84fcb8e0b71e18bae361be607c0c45d10..34513619f371c2234a9885d1570d914d8a87b18f 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Achievement.java
@@ -3,13 +3,16 @@ package com.eyecreate.miceandmystics.miceandmystics.model;
 import io.realm.RealmObject;
 import io.realm.annotations.PrimaryKey;
 
+import java.util.UUID;
+
 public class Achievement extends RealmObject {
     @PrimaryKey
+    private String uuid;
     private String achievementName;
 
     public Achievement() {}
 
-    public Achievement(String achievementName) {setAchievementName(achievementName);}
+    public Achievement(String achievementName) {setAchievementName(achievementName);setUuid(UUID.randomUUID().toString());}
 
     public String getAchievementName() {
         return achievementName;
@@ -18,4 +21,12 @@ public class Achievement extends RealmObject {
     public void setAchievementName(String achievementName) {
         this.achievementName = achievementName;
     }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
 }
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java
index dde64e3a3297844c5506340924247e9cce0827ea..9b8a16f9c9b950caf7bf9732f09db07f7f8fa860 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/BackpackItem.java
@@ -6,6 +6,7 @@ import io.realm.annotations.PrimaryKey;
 public class BackpackItem extends RealmObject {
     //TODO:Look into seeing if it's worth hard coding these instead of manual entry.
     @PrimaryKey
+    private String uuid;
     private String itemName;
 
     public BackpackItem() {}
@@ -19,4 +20,12 @@ public class BackpackItem extends RealmObject {
     public void setItemName(String itemName) {
         this.itemName = itemName;
     }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
 }
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java
index 4283379fd2970d7357c1ffa92354590507795ba6..94626a8e487b20c51be09c4830c7b02e6d93a860 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Character.java
@@ -6,6 +6,7 @@ import io.realm.annotations.PrimaryKey;
 
 public class Character extends RealmObject {
     @PrimaryKey
+    private String uuid;
     private String characterName;
     private RealmList<Ability> abilities;
     private RealmList<BackpackItem> storedItems; //Not sure why I made this a list when rulebook says you can only have one xD
@@ -42,4 +43,12 @@ public class Character extends RealmObject {
     public void setControllingPlayer(Player controllingPlayer) {
         this.controllingPlayer = controllingPlayer;
     }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
 }
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java
index 487ce36ad3d94f33245f6ed39551ff10d4a7cda7..6b8e5d5acd5d35dd231e42b18f5afd46a445123c 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/model/Player.java
@@ -3,13 +3,16 @@ package com.eyecreate.miceandmystics.miceandmystics.model;
 import io.realm.RealmObject;
 import io.realm.annotations.PrimaryKey;
 
+import java.util.UUID;
+
 public class Player extends RealmObject {
     @PrimaryKey
+    private String uuid;
     private String playerName;
 
     public Player() {}
 
-    public Player(String playerName) {setPlayerName(playerName);}
+    public Player(String playerName) {setPlayerName(playerName);setUuid(UUID.randomUUID().toString());}
 
     public String getPlayerName() {
         return playerName;
@@ -18,4 +21,12 @@ public class Player extends RealmObject {
     public void setPlayerName(String playerName) {
         this.playerName = playerName;
     }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
 }
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetails.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetails.java
deleted file mode 100644
index 1d6d8a422223ffdc068ffc869837a787e4956974..0000000000000000000000000000000000000000
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetails.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.eyecreate.miceandmystics.miceandmystics.viewholders;
-
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-
-public class CampaignDetails extends RecyclerView.ViewHolder {
-    public CampaignDetails(View itemView) {
-        super(itemView);
-    }
-}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetailsViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetailsViewHolder.java
new file mode 100644
index 0000000000000000000000000000000000000000..a1f99938da4b173cc1ad4aa1292b77e6315dcfe2
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignDetailsViewHolder.java
@@ -0,0 +1,60 @@
+package com.eyecreate.miceandmystics.miceandmystics.viewholders;
+
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+import com.eyecreate.miceandmystics.miceandmystics.R;
+import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignDetailsAdapter;
+import com.eyecreate.miceandmystics.miceandmystics.model.Character;
+
+public class CampaignDetailsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,View.OnLongClickListener {
+
+    TextView characterName,playerName;
+    ImageView characterIcon;
+    CampaignDetailsAdapter adapter;
+    Character boundCharacter;
+
+    public CampaignDetailsViewHolder(View itemView,CampaignDetailsAdapter adapter) {
+        super(itemView);
+        this.adapter = adapter;
+        characterName = (TextView)itemView.findViewById(R.id.character_name);
+        playerName = (TextView)itemView.findViewById(R.id.character_player);
+        characterIcon = (ImageView)itemView.findViewById(R.id.character_icon);
+    }
+
+    public void bindModel(Character character) {
+        boundCharacter = character;
+        characterName.setText(character.getCharacterName());
+        playerName.setText(character.getControllingPlayer().getPlayerName());
+        //TODO:implement character icons one in project.
+    }
+
+    @Override
+    public void onClick(View view) {
+        //TODO:implement character edit screen.
+    }
+
+    @Override
+    public boolean onLongClick(View view) {
+        AlertDialog removeDialog = new AlertDialog.Builder(view.getContext(),R.style.dialogTheme)
+                .setMessage("Do you want to remove character: "+characterName.getText()+"?")
+                .setNegativeButton("No", new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialogInterface, int i) {
+
+                    }
+                })
+                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialogInterface, int i) {
+                        adapter.removeCharacter(boundCharacter);
+                    }
+                })
+                .create();
+        removeDialog.show();
+        return true;
+    }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeader.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeader.java
deleted file mode 100644
index 149756de28414c12db87a06b745d1548cf8698c3..0000000000000000000000000000000000000000
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeader.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.eyecreate.miceandmystics.miceandmystics.viewholders;
-
-public class CampaignHeader {
-}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeaderViewHolder.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeaderViewHolder.java
new file mode 100644
index 0000000000000000000000000000000000000000..9b1a2e440c1459b9479e94c62b56bc7f01260584
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignHeaderViewHolder.java
@@ -0,0 +1,23 @@
+package com.eyecreate.miceandmystics.miceandmystics.viewholders;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+import com.eyecreate.miceandmystics.miceandmystics.R;
+import com.eyecreate.miceandmystics.miceandmystics.model.Campaign;
+
+public class CampaignHeaderViewHolder extends RecyclerView.ViewHolder {
+
+    TextView campaignName,campaignType;
+
+    public CampaignHeaderViewHolder(View itemView) {
+        super(itemView);
+        campaignName = (TextView)itemView.findViewById(R.id.campaign_name);
+        campaignType = (TextView)itemView.findViewById(R.id.campaign_type);
+    }
+
+    public void bindModel(Campaign campaign) {
+        campaignName.setText(campaign.getCampaignName());
+        campaignType.setText(campaign.getCampaignType());
+    }
+}
diff --git a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/Campaign.java b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignViewHolder.java
similarity index 93%
rename from MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/Campaign.java
rename to MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignViewHolder.java
index 31d2ce7f3e508dcc6f350459545ceb8998d4a273..69fda61cea0409720bded4a4500700540b265121 100644
--- a/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/Campaign.java
+++ b/MiceAndMysticsTracker/src/main/java/com/eyecreate/miceandmystics/miceandmystics/viewholders/CampaignViewHolder.java
@@ -14,13 +14,13 @@ import com.eyecreate.miceandmystics.miceandmystics.CampaignDetailsActivity;
 import com.eyecreate.miceandmystics.miceandmystics.R;
 import com.eyecreate.miceandmystics.miceandmystics.adapters.CampaignAdapter;
 
-public class Campaign extends RecyclerView.ViewHolder implements View.OnClickListener,View.OnLongClickListener {
+public class CampaignViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,View.OnLongClickListener {
 
     CampaignAdapter adapter;
     TextView campaignName;
     PieGraph characterGraph;
 
-    public Campaign(View itemView,CampaignAdapter adapter) {
+    public CampaignViewHolder(View itemView, CampaignAdapter adapter) {
         super(itemView);
         this.adapter = adapter;
         campaignName = (TextView) itemView.findViewById(R.id.campagin_name);
diff --git a/MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml
index 0b9a1b0213353b2e818ddbb473598d5dfee17f5e..75576740d0e6298c8768483b8120edb7a5c6da8a 100644
--- a/MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml
+++ b/MiceAndMysticsTracker/src/main/res/layout/dialog_new_campaign.xml
@@ -6,7 +6,7 @@
         <EditText
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:id="@+id/campagin_name"/>
+                android:id="@+id/campaign_name"/>
         <Spinner
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml
index fb3d8a258054c81b274252adffcf37b375659a36..d8bdab4ac4eecdedfdc68eadaff012e3e55c2abc 100644
--- a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml
+++ b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_details.xml
@@ -1,7 +1,38 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
+<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+                                    xmlns:app="http://schemas.android.com/apk/res-auto"
+                                    android:orientation="vertical"
+                                    android:layout_width="match_parent"
+                                    app:cardUseCompatPadding="true"
+                                    app:cardElevation="0dp"
+                                    android:foreground="?android:attr/selectableItemBackground"
+                                    android:layout_height="match_parent">
 
-</LinearLayout>
\ No newline at end of file
+    <LinearLayout
+            android:layout_width="match_parent"
+            android:background="@color/parchment_yellow"
+            android:layout_height="wrap_content">
+
+        <ImageView
+                android:layout_width="100dp"
+                android:layout_height="100dp"
+                android:id="@+id/character_icon"/>
+
+        <LinearLayout
+                android:orientation="vertical"
+                android:gravity="center_vertical"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
+
+            <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/character_name"/>
+
+            <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/character_player"/>
+        </LinearLayout>
+    </LinearLayout>
+</android.support.v7.widget.CardView>
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml
index bacd3a758dff2b4a7606a9b0a3865743758099ef..285a2ff62ce19b6383c73c6622732f94279eef2c 100644
--- a/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml
+++ b/MiceAndMysticsTracker/src/main/res/layout/item_campaign_header.xml
@@ -2,13 +2,19 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:orientation="vertical"
               android:layout_width="match_parent"
+              android:background="@color/dark_red"
               android:layout_height="match_parent">
             <TextView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:textSize="16sp"
+                    android:textColor="@color/parchment_yellow"
+                    android:gravity="center_horizontal"
                     android:id="@+id/campaign_name"/>
             <TextView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:textColor="@color/parchment_yellow"
+                    android:gravity="center_horizontal"
                     android:id="@+id/campaign_type"/>
 </LinearLayout>
\ No newline at end of file
diff --git a/MiceAndMysticsTracker/src/main/res/values/ids.xml b/MiceAndMysticsTracker/src/main/res/values/ids.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f22ad5d8baabdf2b322414959a6f4090b02ad0a
--- /dev/null
+++ b/MiceAndMysticsTracker/src/main/res/values/ids.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <item type="id" name="campaignDetailMainHeader"/>
+    <item type="id" name="campaignDetailItem"/>
+</resources>
\ No newline at end of file