diff --git a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/Group.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/Group.java
similarity index 99%
rename from projects/cadcUtil/src/ca/nrc/cadc/auth/model/Group.java
rename to projects/cadcAccessControl/src/ca/nrc/cadc/ac/Group.java
index a5dc88727ff612250734a0cb834b024b7239e64e..e89798147a80a826b7c03c819ed51ac35f48748a 100644
--- a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/Group.java
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/Group.java
@@ -32,7 +32,7 @@
  ************************************************************************
  */
 
-package ca.nrc.cadc.auth.model;
+package ca.nrc.cadc.ac;
 
 import java.security.Principal;
 import java.util.HashSet;
diff --git a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/GroupProperty.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/GroupProperty.java
similarity index 99%
rename from projects/cadcUtil/src/ca/nrc/cadc/auth/model/GroupProperty.java
rename to projects/cadcAccessControl/src/ca/nrc/cadc/ac/GroupProperty.java
index cee887259a4f64cf11b8317b225ab8aa3e96f6ea..5ddfa8016e0e75077bf34bac7b7b02b32291d4bc 100644
--- a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/GroupProperty.java
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/GroupProperty.java
@@ -66,7 +66,7 @@
 ************************************************************************
 */
 
-package ca.nrc.cadc.auth.model;
+package ca.nrc.cadc.ac;
 
 /**
  * A property representing metadata for a group.
diff --git a/projects/cadcAccessControl/src/ca/nrc/cadc/ac/PersonalDetails.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/PersonalDetails.java
new file mode 100644
index 0000000000000000000000000000000000000000..a5ca2405f39ea169147858ebeba054c9963e08eb
--- /dev/null
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/PersonalDetails.java
@@ -0,0 +1,203 @@
+/*
+ ************************************************************************
+ ****  C A N A D I A N   A S T R O N O M Y   D A T A   C E N T R E  *****
+ *
+ * (c) 2014.                            (c) 2014.
+ * National Research Council            Conseil national de recherches
+ * Ottawa, Canada, K1A 0R6              Ottawa, Canada, K1A 0R6
+ * All rights reserved                  Tous droits reserves
+ *
+ * NRC disclaims any warranties         Le CNRC denie toute garantie
+ * expressed, implied, or statu-        enoncee, implicite ou legale,
+ * tory, of any kind with respect       de quelque nature que se soit,
+ * to the software, including           concernant le logiciel, y com-
+ * without limitation any war-          pris sans restriction toute
+ * ranty of merchantability or          garantie de valeur marchande
+ * fitness for a particular pur-        ou de pertinence pour un usage
+ * pose.  NRC shall not be liable       particulier.  Le CNRC ne
+ * in any event for any damages,        pourra en aucun cas etre tenu
+ * whether direct or indirect,          responsable de tout dommage,
+ * special or general, consequen-       direct ou indirect, particul-
+ * tial or incidental, arising          ier ou general, accessoire ou
+ * from the use of the software.        fortuit, resultant de l'utili-
+ *                                      sation du logiciel.
+ *
+ *
+ * @author adriand
+ * 
+ * @version $Revision: $
+ * 
+ * 
+ ****  C A N A D I A N   A S T R O N O M Y   D A T A   C E N T R E  *****
+ ************************************************************************
+ */
+
+package ca.nrc.cadc.ac;
+
+public class PersonalDetails implements UserDetails
+{
+    private String firstName;
+    private String lastName;
+    private String email;
+    private String address;
+    private String institute;
+    private String city;
+    private String country;
+
+    public PersonalDetails(String firstName, String lastName, String email,
+            String address, String institute, String city, String country)
+    {
+        if (firstName == null)
+        {
+            throw new IllegalArgumentException("null firstName");
+        }
+        if (lastName == null)
+        {
+            throw new IllegalArgumentException("null lastName");
+        }
+        if (email == null)
+        {
+            throw new IllegalArgumentException("null email");
+        }
+
+        if (address == null)
+        {
+            throw new IllegalArgumentException("null address");
+        }
+        if (institute == null)
+        {
+            throw new IllegalArgumentException("null institute");
+        }
+        if (city == null)
+        {
+            throw new IllegalArgumentException("null city");
+        }
+        if (country == null)
+        {
+            throw new IllegalArgumentException("null country");
+        }
+        this.firstName = firstName;
+        this.lastName = lastName;
+        this.email = email;
+        this.address = address;
+        this.institute = institute;
+        this.city = city;
+        this.country = country;
+    }
+
+    public String getFirstName()
+    {
+        return firstName;
+    }
+
+    public String getLastName()
+    {
+        return lastName;
+    }
+
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public String getAddress()
+    {
+        return address;
+    }
+
+    public String getInstitute()
+    {
+        return institute;
+    }
+
+    public String getCity()
+    {
+        return city;
+    }
+
+    public String getCountry()
+    {
+        return country;
+    }
+
+    /* (non-Javadoc)
+     * @see ca.nrc.cadc.auth.model.UserDetails#hashCode()
+     */
+    @Override
+    public int hashCode()
+    {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + address.hashCode();
+        result = prime * result + city.hashCode();
+        result = prime * result + country.hashCode();
+        result = prime * result + email.hashCode();
+        result = prime * result + firstName.hashCode();
+        result = prime * result + institute.hashCode();
+        result = prime * result + lastName.hashCode();
+        return result;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    @Override
+    public boolean equals(Object obj)
+    {
+        if (this == obj)
+        {
+            return true;
+        }
+        if (obj == null)
+        {
+            return false;
+        }
+        if (!(obj instanceof PersonalDetails))
+        {
+            return false;
+        }
+        PersonalDetails other = (PersonalDetails) obj;
+        if (!firstName.equals(other.firstName))
+        {
+            return false;
+        }
+        if (!lastName.equals(other.lastName))
+        {
+            return false;
+        }
+        if (!email.equals(other.email))
+        {
+            return false;
+        }
+        if (!institute.equals(other.institute))
+        {
+            return false;
+        }
+        if (!address.equals(other.address))
+        {
+            return false;
+        }
+        if (!city.equals(other.city))
+        {
+            return false;
+        }
+        if (!country.equals(other.country))
+        {
+            return false;
+        }
+        return true;
+    }
+
+    /* (non-Javadoc)
+     * @see ca.nrc.cadc.auth.model.UserDetails#toString()
+     */
+    @Override
+    public String toString()
+    {
+        return getClass().getSimpleName() + "[" + firstName + ", "
+                + lastName + ", " + email + ", " + address + ", "
+                + institute + ", " + city + ", " + country + "]";
+    }
+}
diff --git a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/PosixDetails.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/PosixDetails.java
similarity index 99%
rename from projects/cadcUtil/src/ca/nrc/cadc/auth/model/PosixDetails.java
rename to projects/cadcAccessControl/src/ca/nrc/cadc/ac/PosixDetails.java
index 44d8ff4637e90e37a215ed711a2fdaf1bd8856e1..12d8dec1b4560d9d3b68a681dc36793d51c81247 100644
--- a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/PosixDetails.java
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/PosixDetails.java
@@ -32,7 +32,7 @@
  ************************************************************************
  */
 
-package ca.nrc.cadc.auth.model;
+package ca.nrc.cadc.ac;
 
 /**
  * Represents the posix account details associated with a user account.
diff --git a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/User.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
similarity index 98%
rename from projects/cadcUtil/src/ca/nrc/cadc/auth/model/User.java
rename to projects/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
index e92232c215a6c60256bfb17a189bac4f481c50df..3174d0136d7d2fbbc5bdd0a4fa5e758118ae0ded 100644
--- a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/User.java
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
@@ -34,7 +34,7 @@
 
 
 
-package ca.nrc.cadc.auth.model;
+package ca.nrc.cadc.ac;
 
 import java.security.Principal;
 import java.util.HashSet;
diff --git a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/UserDetails.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/UserDetails.java
similarity index 98%
rename from projects/cadcUtil/src/ca/nrc/cadc/auth/model/UserDetails.java
rename to projects/cadcAccessControl/src/ca/nrc/cadc/ac/UserDetails.java
index 6720b0f8978afd95367bd35b59a9f8e4791933d2..d03035c1be2377d4de5ebd9174729138006da364 100644
--- a/projects/cadcUtil/src/ca/nrc/cadc/auth/model/UserDetails.java
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/UserDetails.java
@@ -32,7 +32,7 @@
  ************************************************************************
  */
 
-package ca.nrc.cadc.auth.model;
+package ca.nrc.cadc.ac;
 
 public interface UserDetails
 {
@@ -53,4 +53,4 @@ public interface UserDetails
 
     public String toString();
 
-}
\ No newline at end of file
+}
diff --git a/projects/cadcUtil/test/src/ca/nrc/cadc/auth/model/GroupTest.java b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/GroupTest.java
similarity index 99%
rename from projects/cadcUtil/test/src/ca/nrc/cadc/auth/model/GroupTest.java
rename to projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/GroupTest.java
index 3acb1a875761740b2169971dad220e3bf694b39e..3e48c9a0c5cb5a5446d4645d7470db1951d7b37c 100644
--- a/projects/cadcUtil/test/src/ca/nrc/cadc/auth/model/GroupTest.java
+++ b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/GroupTest.java
@@ -34,7 +34,7 @@
 
 
 
-package ca.nrc.cadc.auth.model;
+package ca.nrc.cadc.ac;
 
 import org.apache.log4j.Logger;
 import org.junit.Test;
diff --git a/projects/cadcUtil/test/src/ca/nrc/cadc/auth/model/UserTest.java b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/UserTest.java
similarity index 99%
rename from projects/cadcUtil/test/src/ca/nrc/cadc/auth/model/UserTest.java
rename to projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/UserTest.java
index 75f0dd92f3c607d33e2db2f722c450f234639e47..0fce989ccfd154bcb79f29134780d0d486ec9a21 100644
--- a/projects/cadcUtil/test/src/ca/nrc/cadc/auth/model/UserTest.java
+++ b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/UserTest.java
@@ -32,7 +32,7 @@
  ************************************************************************
  */
 
-package ca.nrc.cadc.auth.model;
+package ca.nrc.cadc.ac;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;