diff --git a/notebooks/.ipynb_checkpoints/intro-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/intro-checkpoint.ipynb
deleted file mode 100644
index 2fd64429bf421126b7000c94ce0f6fd186fbd01f..0000000000000000000000000000000000000000
--- a/notebooks/.ipynb_checkpoints/intro-checkpoint.ipynb
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "cells": [],
- "metadata": {},
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/notebooks/intro.ipynb b/notebooks/intro.ipynb
index 9e322e7edddeb0d627b5d9411a3e0839fc3cd88f..73ec715b516c18b481b4066be4734c5f3fb2cef6 100644
--- a/notebooks/intro.ipynb
+++ b/notebooks/intro.ipynb
@@ -26,7 +26,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -47,7 +47,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -72,7 +72,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
@@ -104,7 +104,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
@@ -130,7 +130,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -158,7 +158,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
@@ -410,7 +410,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 10,
    "metadata": {
     "scrolled": true
    },
@@ -421,7 +421,7 @@
      "text": [
       "HYSOP_REAL is <type 'numpy.float64'>.\n",
       "\n",
-      "Field (id=139994599482576, tag=f7)\n",
+      "Field::f0\n",
       "          *name:           F0\n",
       "          *pname:          F0\n",
       "          *dim:            2\n",
@@ -430,7 +430,7 @@
       "          *initial values: (0, 0)\n",
       "          *topology tags:  []\n",
       "        \n",
-      "Field (id=139994599331856, tag=f8)\n",
+      "Field::f1\n",
       "          *name:           F1\n",
       "          *pname:          F1\n",
       "          *dim:            2\n",
@@ -462,14 +462,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Field (id=139994598533968, tag=f9)\n",
+      "Field::f2\n",
       "          *name:           V0\n",
       "          *pname:          V0\n",
       "          *dim:            2\n",
@@ -478,7 +478,7 @@
       "          *initial values: (0, 0)\n",
       "          *topology tags:  []\n",
       "        \n",
-      "Field (id=139994599539152, tag=f10)\n",
+      "Field::f3\n",
       "          *name:           V1\n",
       "          *pname:          V1\n",
       "          *dim:            2\n",
@@ -511,18 +511,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
-     "ename": "NameError",
-     "evalue": "name 'field0' is not defined",
+     "ename": "AttributeError",
+     "evalue": "'tuple' object has no attribute 'default_state'",
      "output_type": "error",
      "traceback": [
       "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-4-1829bf9e4cf2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mnpoints\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m8\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mfield0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiscretize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpoints\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
-      "\u001b[0;31mNameError\u001b[0m: name 'field0' is not defined"
+      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-12-1829bf9e4cf2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mnpoints\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m8\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mfield0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiscretize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpoints\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+      "\u001b[0;32m/home/keckj/Documents/hysop/hysop/fields/continuous_field.py\u001b[0m in \u001b[0;36mdiscretize\u001b[0;34m(self, topology, topology_state)\u001b[0m\n\u001b[1;32m    260\u001b[0m         \"\"\"\n\u001b[1;32m    261\u001b[0m         \u001b[0;32mfrom\u001b[0m \u001b[0mhysop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfields\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiscrete_field\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDiscreteField\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 262\u001b[0;31m         \u001b[0mtopology_state\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfirst_not_None\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtopology_state\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtopology\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault_state\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    263\u001b[0m         \u001b[0mcheck_instance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtopology\u001b[0m\u001b[0;34m,\u001b[0m  \u001b[0mTopology\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    264\u001b[0m         \u001b[0mcheck_instance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtopology_state\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTopologyState\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mAttributeError\u001b[0m: 'tuple' object has no attribute 'default_state'"
      ]
     }
    ],
@@ -531,6 +532,41 @@
     "field0.discretize(npoints)"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
   {
    "cell_type": "code",
    "execution_count": null,