Index: /trunk/src/org/expeditee/auth/account/Create.java
===================================================================
--- /trunk/src/org/expeditee/auth/account/Create.java	(revision 1504)
+++ /trunk/src/org/expeditee/auth/account/Create.java	(revision 1505)
@@ -255,5 +255,5 @@
 			if (f.getNumber() != AuthenticatorBrowser.CREDENTIALS_FRAME && 
 					f.getNumber() != AuthenticatorBrowser.PASSWORD_RECOVERY_FRAME) {
-				f.setEncryptionLabel(AuthenticatorBrowser.PROFILEENCRYPTIONLABEL);
+				f.setFrameEncryptionLabel(AuthenticatorBrowser.PROFILEENCRYPTIONLABEL);
 			}
 			Collection<Item> secretsLink = Actions.getByContent(f, "Secrets");
Index: /trunk/src/org/expeditee/encryption/items/UserAppliedEncryptionPermission.java
===================================================================
--- /trunk/src/org/expeditee/encryption/items/UserAppliedEncryptionPermission.java	(revision 1504)
+++ /trunk/src/org/expeditee/encryption/items/UserAppliedEncryptionPermission.java	(revision 1505)
@@ -2,5 +2,5 @@
 
 public enum UserAppliedEncryptionPermission {
-	none(0), homogeneous(1), hetrogeneous_limited(2), hetrogeneous(3), full(4);
+	none(0), homogeneous(1), hetrogeneous_owner(2), hetrogeneous(3);
 	
 	private final int val;
Index: /trunk/src/org/expeditee/gui/AttributeUtils.java
===================================================================
--- /trunk/src/org/expeditee/gui/AttributeUtils.java	(revision 1504)
+++ /trunk/src/org/expeditee/gui/AttributeUtils.java	(revision 1505)
@@ -185,5 +185,5 @@
 			 */
 			
-			// Frames
+			// Standard Frame attributes
 			_FrameAttrib.put("Permission",      Frame.class.getMethod("getPermission"),
 			                                    Frame.class.getMethod("setPermission", pPermission));
@@ -200,20 +200,27 @@
 			_FrameAttrib.put("BackgroundColor", Frame.class.getMethod("getBackgroundColor"),
 			                                    Frame.class.getMethod("setBackgroundColor", pColor));
-			_FrameAttrib.put("EncryptionLabel", Frame.class.getMethod("getEncryptionLabel"), 
-												Frame.class.getMethod("setEncryptionLabel", pString));
-			_FrameAttrib.put("EncPermission", 	Frame.class.getMethod("getEncryptionPermission"), 
-												Frame.class.getMethod("setEncryptionPermission", pEncPermission));
 			_FrameAttrib.put("Group", 			Frame.class.getMethod("getGroup"), 
 												Frame.class.getMethod("setGroup", pString));
 			
-			
-			// aliases for attribute setting
+			// Encryption Frame attributes
+			_FrameAttrib.put("FrameEncryptionLabel", 		Frame.class.getMethod("getFrameEncryptionLabel"), 
+															Frame.class.getMethod("setFrameEncryptionLabel", pString));
+			_FrameAttrib.put("EncryptionFramePermission", 	Frame.class.getMethod("getFrameEncryptionPermission"), 
+															Frame.class.getMethod("setFrameEncryptionPermission", pEncPermission));
+			_FrameAttrib.put("HomogeneousEncryptionLabel", 	Frame.class.getMethod("getHomogeneousEncryptionLabel"), 
+															Frame.class.getMethod("setHomogeneousEncryptionLabel", pString));
+			_FrameAttrib.put("EncryptionPermission", 		Frame.class.getMethod("getEncryptionPermission"), 
+															Frame.class.getMethod("setEncryptionPermission", pEncPermission));
+			
+			// aliases for Standard frame attribute settings
 			_FrameAttrib.alias("fgc",       "foregroundcolor");
 			_FrameAttrib.alias("bgc",       "backgroundcolor");
 			_FrameAttrib.alias("p",         "permission");
-			_FrameAttrib.alias("enc", 		"encryptionlabel");
-			_FrameAttrib.alias("encp", 		"encpermission");
-			_FrameAttrib.alias("EncryptionPermission", "encpermission");
-			
+			
+			// aliases for Encryption frame attribute settings
+			_FrameAttrib.alias("encframelabel",	"FrameEncryptionLabel");
+			_FrameAttrib.alias("encframeperm",	"EncryptionFramePermission");
+			_FrameAttrib.alias("homoenclabel", 	"HomogeneousEncryptionLabel");
+			_FrameAttrib.alias("encperm", 		"EncryptionPermission");
 			
 			// Generic Items
Index: /trunk/src/org/expeditee/gui/Frame.java
===================================================================
--- /trunk/src/org/expeditee/gui/Frame.java	(revision 1504)
+++ /trunk/src/org/expeditee/gui/Frame.java	(revision 1505)
@@ -117,5 +117,7 @@
 	private PermissionTriple _permissionTriple = null;
 	
-	private EncryptionPermissionTriple _encPermissionTriple = null;
+	private EncryptionPermissionTriple _frameEncryptionPermission = null;
+	
+	private EncryptionPermissionTriple _itemEncryptionPermission = null;
 
 	private String _owner = null;
@@ -154,9 +156,4 @@
 	private ItemsList _primaryItemsBody = new ItemsList();
 	private ItemsList _surrogateItemsBody = new ItemsList();
-	
-	//private List<Item> _body = new ArrayList<Item>();
-	//private List<Item> _bodyHiddenDueToPermissions = new ArrayList<Item>();
-	//private List<Item> _primaryItemsBody = new ArrayList<Item>();
-	//private List<Item> _surrogateItemsBody = new ArrayList<Item>();
 
 	// for drawing purposes
@@ -199,4 +196,6 @@
 	private String _encryptionLabel;
 	
+	private String _homogeneousEncryptionLabel;
+	
 	private String _groupFrameName;
 	private Frame _groupFrame = null;
@@ -217,5 +216,5 @@
 	
 	public boolean isEncryptableFrame() {
-		boolean hasEncryptionLabel = this.getEncryptionLabel() != null;
+		boolean hasEncryptionLabel = this.getFrameEncryptionLabel() != null;
 		boolean isProfileFrame = this.getPath().equals(FrameIO.PROFILE_PATH);
 		boolean isCredentialsFrame = isProfileFrame && this.getNumber() == AuthenticatorBrowser.CREDENTIALS_FRAME;
@@ -580,5 +579,5 @@
 	public Item getNameItem() {
 		//Text ret = _frameName;
-		if (this.getEncryptionLabel() != null && this.getEncryptionLabel().length() > 0) {
+		if (this.getFrameEncryptionLabel() != null && this.getFrameEncryptionLabel().length() > 0) {
 			_frameName.setText("\uD83D\uDD12" + getFramesetName() + _number);
 			_frameName.resetFrameNamePosition();
@@ -3001,10 +3000,11 @@
 		return _interactableItems;
 	}
-	
-	public String getEncryptionLabel() {
+		
+	/** Encryption related functions start **/
+	public String getFrameEncryptionLabel() {
 		return _encryptionLabel;
 	}
 	
-	public void setEncryptionLabel(String label) {
+	public void setFrameEncryptionLabel(String label) {
 		LabelInfo labelResult = Label.getLabel(label);
 		boolean isProfileOrNone = label.equals("Profile") || label.equals("None");
@@ -3019,11 +3019,37 @@
 	}
 	
+	public EncryptionPermissionTriple getFrameEncryptionPermission() {
+		return _frameEncryptionPermission;
+	}
+	
+	public void setFrameEncryptionPermission(EncryptionPermissionTriple p) {
+		_frameEncryptionPermission = p;
+	}
+	
+	public String getHomogeneousEncryptionLabel() {
+		return _homogeneousEncryptionLabel;
+	}
+	
+	public void setHomogeneousEncryptionLabel(String label) {
+		LabelInfo labelResult = Label.getLabel(label);
+		boolean isProfileOrNone = label.equals("Profile") || label.equals("None");
+		if (!isProfileOrNone && !labelResult.is(LabelResult.SuccessResolveLabelToKey)) {
+			MessageBay.displayMessage(labelResult.toString());
+			this._homogeneousEncryptionLabel = null;
+			return;
+		}
+		
+		this.setChanged(true);
+		_homogeneousEncryptionLabel = label;
+	}
+	
 	public EncryptionPermissionTriple getEncryptionPermission() {
-		return _encPermissionTriple;
+		return _itemEncryptionPermission;
 	}
 	
 	public void setEncryptionPermission(EncryptionPermissionTriple p) {
-		_encPermissionTriple = p;
-	}
+		_itemEncryptionPermission = p;
+	}
+	/** Encryption related functions end **/
 
 	public String getGroup() {
Index: /trunk/src/org/expeditee/gui/FrameCreator.java
===================================================================
--- /trunk/src/org/expeditee/gui/FrameCreator.java	(revision 1504)
+++ /trunk/src/org/expeditee/gui/FrameCreator.java	(revision 1505)
@@ -173,5 +173,5 @@
 			
 			if (encryptionLabel != null && encryptionLabel.length() > 0) {
-				toUse.setEncryptionLabel(encryptionLabel);
+				toUse.setFrameEncryptionLabel(encryptionLabel);
 			}
 		
@@ -252,5 +252,5 @@
 			
 			if (encryptionLabel != null && encryptionLabel.length() > 0) {
-				newFrame.setEncryptionLabel(encryptionLabel);
+				newFrame.setFrameEncryptionLabel(encryptionLabel);
 			}
 
Index: /trunk/src/org/expeditee/gui/FrameIO.java
===================================================================
--- /trunk/src/org/expeditee/gui/FrameIO.java	(revision 1504)
+++ /trunk/src/org/expeditee/gui/FrameIO.java	(revision 1505)
@@ -1146,5 +1146,5 @@
 								
 				if (toSave.isEncryptableFrame()) {
-					String encryptionLabel = toSave.getEncryptionLabel();
+					String encryptionLabel = toSave.getFrameEncryptionLabel();
 					writer = new EncryptedExpWriter(encryptionLabel);
 				} else {
Index: /trunk/src/org/expeditee/io/Conversion.java
===================================================================
--- /trunk/src/org/expeditee/io/Conversion.java	(revision 1504)
+++ /trunk/src/org/expeditee/io/Conversion.java	(revision 1505)
@@ -522,5 +522,5 @@
 		value = value.trim();
 
-		if ((method.getParameterTypes()[0].isEnum()) || (name.matches("setPermission")) || (name.matches("setEncryptionPermission"))) {
+		if ((method.getParameterTypes()[0].isEnum()) || (name.matches("setPermission")) || (name.matches("setFrameEncryptionPermission"))) {
 			Method convertString;
 			Object[] objects = new Object[1];
Index: /trunk/src/org/expeditee/io/DefaultFrameReader.java
===================================================================
--- /trunk/src/org/expeditee/io/DefaultFrameReader.java	(revision 1504)
+++ /trunk/src/org/expeditee/io/DefaultFrameReader.java	(revision 1505)
@@ -83,4 +83,7 @@
 
 		try {
+			///     C         H I J   L   N   P Q R S       W X Y Z
+			/// a b c     f g h i j   l m n o   q r s t u v w x y z
+			// Standard frame tags
 			_FrameTags.put('A', Frame.class.getMethod("setName", pString));
 			_FrameTags.put('V', Frame.class.getMethod("setVersion", pInt));
@@ -93,8 +96,12 @@
 			_FrameTags.put('O', Frame.class.getMethod("setForegroundColor",	pColor));
 			_FrameTags.put('B', Frame.class.getMethod("setBackgroundColor",	pColor));
-			_FrameTags.put('K', Frame.class.getMethod("setEncryptionLabel", pString));
 			_FrameTags.put('T', Frame.class.getMethod("addToData", pString));
-			_FrameTags.put('E', Frame.class.getMethod("setEncryptionPermission", pEncPermission));
 			_FrameTags.put('G', Frame.class.getMethod("setGroup", pString));
+			
+			// Encryption frame tags
+			_FrameTags.put('K', Frame.class.getMethod("setFrameEncryptionLabel", pString));
+			_FrameTags.put('E', Frame.class.getMethod("setFrameEncryptionPermission", pEncPermission));
+			_FrameTags.put('k', Frame.class.getMethod("setHomogeneousEncryptionLabel", pString));
+			_FrameTags.put('e', Frame.class.getMethod("setEncryptionPermission", pEncPermission));
 
 			// Note: As of 26/11/18 there are no unused letter item tags.  Use other characters.
Index: /trunk/src/org/expeditee/io/DefaultFrameWriter.java
===================================================================
--- /trunk/src/org/expeditee/io/DefaultFrameWriter.java	(revision 1504)
+++ /trunk/src/org/expeditee/io/DefaultFrameWriter.java	(revision 1505)
@@ -178,4 +178,7 @@
 	{
 		try {
+			///     C         H I J   L   N   P Q R S       W X Y Z
+			/// a b c     f g h i j   l m n o   q r s t u v w x y z
+			// Standard frame tags
 			_FrameTags.put('V', Frame.class.getMethod("getVersion"));
 			_FrameTags.put('p', Frame.class.getMethod("getPermission"));
@@ -187,8 +190,12 @@
 			_FrameTags.put('O', Frame.class.getMethod("getForegroundColor"));
 			_FrameTags.put('B', Frame.class.getMethod("getBackgroundColor"));
-			_FrameTags.put('K', Frame.class.getMethod("getEncryptionLabel"));
 			_FrameTags.put('T', Frame.class.getMethod("getData"));
-			_FrameTags.put('E', Frame.class.getMethod("getEncryptionPermission"));
 			_FrameTags.put('G', Frame.class.getMethod("getGroup"));
+			
+			// Encryption frame tags
+			_FrameTags.put('K', Frame.class.getMethod("getFrameEncryptionLabel"));
+			_FrameTags.put('E', Frame.class.getMethod("getFrameEncryptionPermission"));
+			_FrameTags.put('k', Frame.class.getMethod("getHomogeneousEncryptionLabel"));
+			_FrameTags.put('e', Frame.class.getMethod("getEncryptionPermission"));
 			
 			// Note: As of 26/11/18 there are no unused letter item tags.  Use other characters.
Index: /trunk/src/org/expeditee/items/Item.java
===================================================================
--- /trunk/src/org/expeditee/items/Item.java	(revision 1504)
+++ /trunk/src/org/expeditee/items/Item.java	(revision 1505)
@@ -4102,5 +4102,5 @@
 		this._encryptionLabel = label;
 		
-		if (this.getParent().getEncryptionLabel() == null) {
+		if (this.getParent().getFrameEncryptionLabel() == null) {
 			MessageBay.displayMessage("Items can only be entrypted if the frame they are on is.");
 			return;
