     |> Kernel.*(@radians_in_circle)
   end
 
-  def hourToRadians(pHour) do
-    integerToRadians(pHour, @hours_in_circle)
-  end
-
-  def adjustHourInRadians(pMinute) do
+  def hourToRadians(%{hour: pHour, minute: pMinute, adjust: true}) do
     pMinute
     |> Kernel./(@minutes_in_circle) # normalize to a value from [0,1)
     |> Kernel.*(@radians_in_circle) # fraction of circumference of circle
     |> Kernel./(@hours_in_circle) # fraction between hour positions
-  end
-
-  def minuteToRadians(pMinute) do
+    |> Kernel.+(hourToRadians(%{hour: pHour})) # add base result
+  end
+
+  def hourToRadians(%{hour: pHour}) do
+    integerToRadians(pHour, @hours_in_circle)
+  end
+
+  def minuteToRadians(%{minute: pMinute}) do
     integerToRadians(pMinute, @minutes_in_circle)
   end
 

    |> Kernel.abs
  end

  # adjust hour hand
  def radians(%{hour: pHour, minute: pMinute, adjust: true}) do
    minuteToRadians(pMinute) - hourToRadians(pHour) - adjustHourInRadians(pMinute)
  end

  # do not adjust hour hand
  def radians(%{hour: pHour, minute: pMinute}) do
    minuteToRadians(pMinute) - hourToRadians(pHour)
  end

  # catch all

  def conditionalAdjustMinutes(pInitialValue, _pMinute, false), do: pInitialValue

  def conditionalAdjustMinutes(pInitialValue, pMinute, true) do
    %{minute: -pMinute, hour: 0, adjust: true} # subtract minute adjustment
    |> ClockAngle.hourToRadians # get adjustment
    |> Kernel.+(pInitialValue) # apply adjustment
  end

  def conditionalBounds(_pValue, pHour, pMinute, true) when
