diff --git a/casr-logbook-types.cabal b/casr-logbook-types.cabal
--- a/casr-logbook-types.cabal
+++ b/casr-logbook-types.cabal
@@ -1,5 +1,5 @@
 name:               casr-logbook-types
-version:            0.0.1
+version:            0.0.2
 license:            OtherLicense
 license-file:       LICENSE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+0.0.2
+
+* Add `circuitsatdate` to make it easier to track take-offs and landings.
+* Add lens instances for nested fields.
+
 0.0.1
 
 * Initial release
diff --git a/src/Data/Aviation/Casr/Logbook/Types/AircraftFlight.hs b/src/Data/Aviation/Casr/Logbook/Types/AircraftFlight.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/AircraftFlight.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/AircraftFlight.hs
@@ -12,11 +12,12 @@
 , noif_commandonlyflight
 ) where
 
+import Control.Category((.))
 import Control.Lens(makeClassy)
-import Data.Aviation.Casr.Logbook.Types.Aircraft(Aircraft)
+import Data.Aviation.Casr.Logbook.Types.Aircraft(Aircraft, HasAircraft(aircraft))
 import Data.Aviation.Casr.Logbook.Types.Command(Command(ICUS, Dual, InCommand))
-import Data.Aviation.Casr.Logbook.Types.DayNight(DayNight)
-import Data.Aviation.Casr.Logbook.Types.FlightPath(FlightPath)
+import Data.Aviation.Casr.Logbook.Types.DayNight(DayNight, HasDayNight(dayNight))
+import Data.Aviation.Casr.Logbook.Types.FlightPath(FlightPath, HasFlightPath(flightPath))
 import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator)
 import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount, zerotimeamount)
 import Data.Eq(Eq)
@@ -37,6 +38,18 @@
 
 makeClassy ''AircraftFlight
 
+instance HasAircraft AircraftFlight where
+  aircraft =
+    flightaircraft . aircraft
+
+instance HasDayNight AircraftFlight where
+  dayNight =
+    daynight . dayNight
+
+instance HasFlightPath AircraftFlight where
+  flightPath =
+    flightpath . flightPath
+    
 icusonlyflight ::
   String
   -> Aircraft
diff --git a/src/Data/Aviation/Casr/Logbook/Types/Briefing.hs b/src/Data/Aviation/Casr/Logbook/Types/Briefing.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/Briefing.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/Briefing.hs
@@ -6,11 +6,12 @@
 , HasBriefing(..)
 ) where
   
+import Control.Category((.))
 import Control.Lens(makeClassy)
-import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator)
-import Data.Aviation.Casr.Logbook.Types.Location(Location)
-import Data.Aviation.Casr.Logbook.Types.Time(Time)
-import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount)
+import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator, HasAviator(aviator))
+import Data.Aviation.Casr.Logbook.Types.Location(Location, HasLocation(location))
+import Data.Aviation.Casr.Logbook.Types.Time(Time, HasTime(time))
+import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount, HasTimeAmount(timeAmount))
 import Data.Eq(Eq)
 import Data.Ord(Ord)
 import Data.String(String)
@@ -26,3 +27,20 @@
   } deriving (Eq, Ord, Show)
 
 makeClassy ''Briefing
+
+instance HasLocation Briefing where
+  location =
+    briefingLocation . location
+
+instance HasTime Briefing where
+  time =
+    briefingTime .  time
+
+instance HasAviator Briefing where
+  aviator =
+    briefer . aviator
+
+instance HasTimeAmount Briefing where
+  timeAmount =
+    briefingTimeAmount . timeAmount
+    
diff --git a/src/Data/Aviation/Casr/Logbook/Types/Exam.hs b/src/Data/Aviation/Casr/Logbook/Types/Exam.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/Exam.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/Exam.hs
@@ -7,10 +7,11 @@
 , dayonlyexam
 ) where
 
+import Control.Category((.))
 import Control.Lens(makeClassy)
-import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator)
-import Data.Aviation.Casr.Logbook.Types.Time(Time, dayonly)
-import Data.Aviation.Casr.Logbook.Types.Location(Location)
+import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator, HasAviator(aviator))
+import Data.Aviation.Casr.Logbook.Types.Time(Time, HasTime(time), dayonly)
+import Data.Aviation.Casr.Logbook.Types.Location(Location, HasLocation(location))
 import Data.Eq(Eq)
 import Data.Int(Int)
 import Data.Ord(Ord)
@@ -30,6 +31,18 @@
 
 makeClassy ''Exam
 
+instance HasLocation Exam where
+  location =
+    examLocation . location
+
+instance HasTime Exam where
+  time =
+    examTime . time
+
+instance HasAviator Exam where
+  aviator =
+    examDelegate . aviator
+    
 dayonlyexam ::
   String
   -> Location
diff --git a/src/Data/Aviation/Casr/Logbook/Types/FlightPath.hs b/src/Data/Aviation/Casr/Logbook/Types/FlightPath.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/FlightPath.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/FlightPath.hs
@@ -8,13 +8,15 @@
 , directcircuit
 , pointsatdate
 , flightPathList
+, circuitsatdate
 ) where
 
 import Control.Lens(makeClassy)
 import Data.Aviation.Casr.Logbook.Types.FlightPoint(FlightPoint, pointatdate)
 import Data.Eq(Eq)
 import Data.Functor((<$>))
-import Data.List((++))
+import Data.Int(Int)
+import Data.List((++), replicate)
 import Data.Ord(Ord)
 import Data.String(String)
 import Data.Time(Day)
@@ -59,3 +61,14 @@
   -> [FlightPoint]
 flightPathList (FlightPath s x e) =
   s : x ++ [e]
+
+circuitsatdate ::
+  String
+  -> Int
+  -> Day
+  -> FlightPath
+circuitsatdate x n d =
+  FlightPath
+    (pointatdate x d)
+    (replicate n (pointatdate x d))
+    (pointatdate x d)
diff --git a/src/Data/Aviation/Casr/Logbook/Types/SimulatorFlight.hs b/src/Data/Aviation/Casr/Logbook/Types/SimulatorFlight.hs
--- a/src/Data/Aviation/Casr/Logbook/Types/SimulatorFlight.hs
+++ b/src/Data/Aviation/Casr/Logbook/Types/SimulatorFlight.hs
@@ -7,8 +7,9 @@
 , dayonlysimulator
 ) where
 
+import Control.Category((.))
 import Control.Lens(makeClassy)
-import Data.Aviation.Casr.Logbook.Types.Time(Time, dayonly)
+import Data.Aviation.Casr.Logbook.Types.Time(Time, HasTime(time), dayonly)
 import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator)
 import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount)
 import Data.Eq(Eq)
@@ -28,6 +29,10 @@
   } deriving (Eq, Ord, Show)   
 
 makeClassy ''SimulatorFlight
+
+instance HasTime SimulatorFlight where
+  time =
+    simulatorflighttime . time
 
 dayonlysimulator ::
   String
