diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index a72ba45..c507d41 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -22505,7 +22505,7 @@ DecimalExpansion(): Exports == Implementation where
 
 \end{chunk}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Denavit-Hartenberg Matrices}
+\section{domain DHMATRIX DenavitHartenbergMatrix}
 
 \subsection{Homogeneous Transformations}
 The study of robot manipulation is concerned with the relationship between
@@ -24130,6 +24130,687 @@ where n, o, and a are the direction cosines
 
 See Also:
 o )show DenavitHartenbergMatrix
+o )d op identity
+
+\end{chunk}
+\begin{chunk}{identity.help}
+====================================================================
+identity from DenavitHartenbergMatrix (DHMATRIX)
+====================================================================
+
+NAME
+====
+
+identity 
+
+DOMAIN
+======
+
+DenavitHartenbergMatrix (DHMATRIX)
+
+SYNOPSYS
+========
+
+  identity()
+
+DESCRIPTION
+===========
+
+A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form:
+     nx ox ax px
+     ny oy ay py
+     nz oz az pz
+     0  0  0  1
+where n, o, and a are the direction cosines
+
+The identity matrix comes from the chosen Ring which is
+Expression(Integer) by default. 
+
+ARGUMENTS
+=========
+
+None
+
+RETURN VALUE
+============
+
+A 4x4 matrix with elements from the Ring
+
+identity()
+
+  +1  0  0  0+
+  |          |
+  |0  1  0  0|
+  |          |
+  |0  0  1  0|
+  |          |
+  +0  0  0  1+
+                    Type: DenavitHartenbergMatrix(Expression(Integer))
+
+You can specify the domain with
+
+identity()$DHMATRIX(DFLOAT)
+
+  +1.  0.  0.  0.+
+  |              |
+  |0.  1.  0.  0.|
+  |              |
+  |0.  0.  1.  0.|
+  |              |
+  +0.  0.  0.  1.+
+                            Type: DenavitHartenbergMatrix(DoubleFloat)
+
+NOTES
+=====
+
+REFERENCES
+==========
+
+Paul, Richard "Robot Manipulators" MIT Press 1981 ISBN 0-262-16082-X
+
+SEE ALSO
+========
+
+o )show DenavitHartenbergMatrix
+o )d op identity
+o )d op rotatex
+o )d op rotatey
+o )d op rotatez
+o )d op scale
+o )d op translate
+
+\end{chunk}
+\begin{chunk}{rotatex.help}
+====================================================================
+rotatex from DenavitHartenbergMatrix (DHMATRIX)
+====================================================================
+
+NAME
+====
+
+rotatex
+
+DOMAIN
+======
+
+DenavitHartenbergMatrix (DHMATRIX)
+
+SYNOPSYS
+========
+
+  rotatex(degrees)
+
+DESCRIPTION
+===========
+
+A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form:
+     nx ox ax px
+     ny oy ay py
+     nz oz az pz
+     0  0  0  1
+where n, o, and a are the direction cosines
+
+The rotatex function returns a matrix from the chosen Ring which is
+Expression(Integer) by default. This matrix can be multiplied by 
+a point to move the coordinates of the point in 3-space. This is
+mostly used in drawing. 
+
+The rotatex matrix can be multiplied by other DH matrices to compose
+rotation, translation, and scale operations into a single linear 
+transformation matrix.
+
+Multiplying a point by a rotatex matrix will rotate the point around
+the X axis by the given number of degrees.
+
+ARGUMENTS
+=========
+
+  degrees is the number of degrees (positive or negative)
+
+RETURN VALUE
+============
+
+A 4x4 matrix with elements from the Ring. Expression(Integer) is the default.
+
+ rotatex(30)
+
+  +1   0     0    0+
+  |                |
+  |    +-+         |
+  |   \|3     1    |
+  |0  ----  - -   0|
+  |     2     2    |
+  |                |
+  |          +-+   |
+  |    1    \|3    |
+  |0   -    ----  0|
+  |    2      2    |
+  |                |
+  +0   0     0    1+
+                    Type: DenavitHartenbergMatrix(Expression(Integer))
+
+rotatex(3.3)
+
+  +1.0             0.0                         0.0              0.0+
+  |                                                                |
+  |0.0   0.9983418166 1402834927   - 0.0575640269 5956728358 2  0.0|
+  |                                                                |
+  |0.0  0.0575640269 5956728358 2    0.9983418166 1402834927    0.0|
+  |                                                                |
+  +0.0             0.0                         0.0              1.0+
+                                  Type: DenavitHartenbergMatrix(Float)
+
+rotatex(-3.3)
+
+  +1.0              0.0                         0.0             0.0+
+  |                                                                |
+  |0.0    0.9983418166 1402834927    0.0575640269 5956728358 2  0.0|
+  |                                                                |
+  |0.0  - 0.0575640269 5956728358 2   0.9983418166 1402834927   0.0|
+  |                                                                |
+  +0.0              0.0                         0.0             1.0+
+                                  Type: DenavitHartenbergMatrix(Float)
+
+Note that a zero argument is equivalent to calling the identity function.
+
+rotatex(0)
+
+  +1  0  0  0+
+  |          |
+  |0  1  0  0|
+  |          |
+  |0  0  1  0|
+  |          |
+  +0  0  0  1+
+                           Type: DenavitHartenbergMatrix(Expression(Integer))
+
+
+NOTES
+=====
+
+REFERENCES
+==========
+
+Paul, Richard "Robot Manipulators" MIT Press 1981 ISBN 0-262-16082-X
+
+SEE ALSO
+========
+
+o )show DenavitHartenbergMatrix
+o )d op identity
+o )d op rotatex
+o )d op rotatey
+o )d op rotatez
+o )d op scale
+o )d op translate
+
+\end{chunk}
+\begin{chunk}{rotatey.help}
+====================================================================
+rotatey from DenavitHartenbergMatrix (DHMATRIX)
+====================================================================
+
+NAME
+====
+
+rotatey
+
+DOMAIN
+======
+
+DenavitHartenbergMatrix (DHMATRIX)
+
+SYNOPSYS
+========
+
+  rotatey(degrees)
+
+DESCRIPTION
+===========
+
+A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form:
+     nx ox ax px
+     ny oy ay py
+     nz oz az pz
+     0  0  0  1
+where n, o, and a are the direction cosines
+
+The rotatey function returns a matrix from the chosen Ring which is
+Expression(Integer) by default. This matrix can be multiplied by 
+a point to move the coordinates of the point in 3-space. This is
+mostly used in drawing. 
+
+The rotatey matrix can be multiplied by other DH matrices to compose
+rotation, translation, and scale operations into a single linear 
+transformation matrix.
+
+Multiplying a point by a rotatex matrix will rotate the point around
+the Y axis by the given number of degrees.
+
+ARGUMENTS
+=========
+
+  degrees is the number of degrees (positive or negative)
+
+RETURN VALUE
+============
+
+A 4x4 matrix with elements from the Ring. Expression(Integer) is the default.
+
+rotatey(30)
+
+  + +-+            +
+  |\|3       1     |
+  |----  0   -    0|
+  |  2       2     |
+  |                |
+  | 0    1   0    0|
+  |                |
+  |          +-+   |
+  |  1      \|3    |
+  |- -   0  ----  0|
+  |  2        2    |
+  |                |
+  + 0    0   0    1+
+                    Type: DenavitHartenbergMatrix(Expression(Integer))
+ rotatey(3.3)
+
+  +  0.9983418166 1402834927    0.0  0.0575640269 5956728358 2  0.0+
+  |                                                                |
+  |            0.0              1.0             0.0             0.0|
+  |                                                                |
+  |- 0.0575640269 5956728358 2  0.0   0.9983418166 1402834927   0.0|
+  |                                                                |
+  +            0.0              0.0             0.0             1.0+
+                                         Type: DenavitHartenbergMatrix(Float)
+ rotatey(-3.3)
+
+  + 0.9983418166 1402834927   0.0  - 0.0575640269 5956728358 2  0.0+
+  |                                                                |
+  |           0.0             1.0              0.0              0.0|
+  |                                                                |
+  |0.0575640269 5956728358 2  0.0    0.9983418166 1402834927    0.0|
+  |                                                                |
+  +           0.0             0.0              0.0              1.0+
+                                         Type: DenavitHartenbergMatrix(Float)
+
+Note that a zero argument is equivalent to calling the identity function.
+
+ rotatey(0)
+
+  +1  0  0  0+
+  |          |
+  |0  1  0  0|
+  |          |
+  |0  0  1  0|
+  |          |
+  +0  0  0  1+
+                    Type: DenavitHartenbergMatrix(Expression(Integer))
+
+NOTES
+=====
+
+REFERENCES
+==========
+
+Paul, Richard "Robot Manipulators" MIT Press 1981 ISBN 0-262-16082-X
+
+SEE ALSO
+========
+
+o )show DenavitHartenbergMatrix
+o )d op identity
+o )d op rotatex
+o )d op rotatey
+o )d op rotatez
+o )d op scale
+o )d op translate
+
+\end{chunk}
+\begin{chunk}{rotatez.help}
+====================================================================
+rotatez from DenavitHartenbergMatrix (DHMATRIX)
+====================================================================
+
+NAME
+====
+
+rotatez
+
+DOMAIN
+======
+
+DenavitHartenbergMatrix (DHMATRIX)
+
+SYNOPSYS
+========
+
+  rotatez(degrees)
+
+DESCRIPTION
+===========
+
+A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form:
+     nx ox ax px
+     ny oy ay py
+     nz oz az pz
+     0  0  0  1
+where n, o, and a are the direction cosines
+
+The rotatez function returns a matrix from the chosen Ring which is
+Expression(Integer) by default. This matrix can be multiplied by 
+a point to move the coordinates of the point in 3-space. This is
+mostly used in drawing. 
+
+The rotatez matrix can be multiplied by other DH matrices to compose
+rotation, translation, and scale operations into a single linear 
+transformation matrix.
+
+Multiplying a point by a rotatez matrix will rotate the point around
+the Z axis by the given number of degrees.
+
+ARGUMENTS
+=========
+
+  degrees is the number of degrees (positive or negative)
+
+RETURN VALUE
+============
+
+A 4x4 matrix with elements from the Ring. Expression(Integer) is the default.
+
+rotatez(30)
+
+  + +-+            +
+  |\|3     1       |
+  |----  - -   0  0|
+  |  2     2       |
+  |                |
+  |       +-+      |
+  | 1    \|3       |
+  | -    ----  0  0|
+  | 2      2       |
+  |                |
+  | 0     0    1  0|
+  |                |
+  + 0     0    0  1+
+                    Type: DenavitHartenbergMatrix(Expression(Integer))
+
+ rotatez(3.3)
+
+  + 0.9983418166 1402834927   - 0.0575640269 5956728358 2  0.0  0.0+
+  |                                                                |
+  |0.0575640269 5956728358 2    0.9983418166 1402834927    0.0  0.0|
+  |                                                                |
+  |           0.0                         0.0              1.0  0.0|
+  |                                                                |
+  +           0.0                         0.0              0.0  1.0+
+                                         Type: DenavitHartenbergMatrix(Float)
+
+ rotatez(-3.3)
+
+  +  0.9983418166 1402834927    0.0575640269 5956728358 2  0.0  0.0+
+  |                                                                |
+  |- 0.0575640269 5956728358 2   0.9983418166 1402834927   0.0  0.0|
+  |                                                                |
+  |            0.0                         0.0             1.0  0.0|
+  |                                                                |
+  +            0.0                         0.0             0.0  1.0+
+                                  Type: DenavitHartenbergMatrix(Float)
+
+Note that a zero argument is equivalent to calling the identity function.
+
+ rotatez(0)
+
+  +1  0  0  0+
+  |          |
+  |0  1  0  0|
+  |          |
+  |0  0  1  0|
+  |          |
+  +0  0  0  1+
+                    Type: DenavitHartenbergMatrix(Expression(Integer))
+
+NOTES
+=====
+
+REFERENCES
+==========
+
+Paul, Richard "Robot Manipulators" MIT Press 1981 ISBN 0-262-16082-X
+
+SEE ALSO
+========
+
+o )show DenavitHartenbergMatrix
+o )d op identity
+o )d op rotatex
+o )d op rotatey
+o )d op rotatez
+o )d op scale
+o )d op translate
+
+\end{chunk}
+\begin{chunk}{scale.help}
+====================================================================
+scale from DenavitHartenbergMatrix (DHMATRIX)
+====================================================================
+
+NAME
+====
+
+scale
+
+DOMAIN
+======
+
+DenavitHartenbergMatrix (DHMATRIX)
+
+SYNOPSYS
+========
+
+  scale(inX,inY,inZ)
+
+DESCRIPTION
+===========
+
+A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form:
+     nx ox ax px
+     ny oy ay py
+     nz oz az pz
+     0  0  0  1
+where n, o, and a are the direction cosines
+
+The scale function returns a matrix from the chosen Ring which is
+Expression(Integer) by default. This matrix can be multiplied by 
+a point to scale the coordinates of the point in 3-space. This is
+mostly used in drawing. 
+
+The scale matrix can be multiplied by other DH matrices to compose
+rotation, translation, and scale operations into a single linear 
+transformation matrix.
+
+Multiplying a point by a scale matrix will scale the X, Y, and Z
+coordinates of the point. 
+
+ARGUMENTS
+=========
+
+  inX is the amount to scale in the X direction
+
+  inY is the amount to scale in the Y direction
+
+  inZ is the amount to scale in the Z direction
+
+RETURN VALUE
+============
+
+A 4x4 matrix with elements from the Ring. Expression(Integer) is the default.
+
+ scale(0.5,0.4,0.3)
+
+  +0.5  0.0  0.0  0.0+
+  |                  |
+  |0.0  0.4  0.0  0.0|
+  |                  |
+  |0.0  0.0  0.3  0.0|
+  |                  |
+  +0.0  0.0  0.0  1.0+
+                                         Type: DenavitHartenbergMatrix(Float)
+
+ scale(0.5,-0.4,0.3)
+
+  +0.5   0.0   0.0  0.0+
+  |                    |
+  |0.0  - 0.4  0.0  0.0|
+  |                    |
+  |0.0   0.0   0.3  0.0|
+  |                    |
+  +0.0   0.0   0.0  1.0+
+                                  Type: DenavitHartenbergMatrix(Float)
+
+Note that arguments of 1's is equivalent to calling the identity function.
+
+ scale(1,1,1)
+
+  +1  0  0  0+
+  |          |
+  |0  1  0  0|
+  |          |
+  |0  0  1  0|
+  |          |
+  +0  0  0  1+
+                           Type: DenavitHartenbergMatrix(Expression(Integer))
+
+NOTES
+=====
+
+REFERENCES
+==========
+
+Paul, Richard "Robot Manipulators" MIT Press 1981 ISBN 0-262-16082-X
+
+SEE ALSO
+========
+
+o )show DenavitHartenbergMatrix
+o )d op identity
+o )d op rotatex
+o )d op rotatey
+o )d op rotatez
+o )d op scale
+o )d op translate
+
+\end{chunk}
+\begin{chunk}{translate.help}
+====================================================================
+translate from DenavitHartenbergMatrix (DHMATRIX)
+====================================================================
+
+NAME
+====
+
+translate
+
+DOMAIN
+======
+
+DenavitHartenbergMatrix (DHMATRIX)
+
+SYNOPSYS
+========
+
+  translate(inX,inY,inZ)
+
+DESCRIPTION
+===========
+
+A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form:
+     nx ox ax px
+     ny oy ay py
+     nz oz az pz
+     0  0  0  1
+where n, o, and a are the direction cosines
+
+The translate function returns a matrix from the chosen Ring which is
+Expression(Integer) by default. This matrix can be multiplied by 
+a point to translate the coordinates of the point in 3-space. This is
+mostly used in drawing. 
+
+The translate matrix can be multiplied by other DH matrices to compose
+rotation, translation, and scale operations into a single linear 
+transformation matrix.
+
+Multiplying a point by a translate matrix will translate the X, Y, and Z
+coordinates of the point. 
+
+ARGUMENTS
+=========
+
+  inX is the amount to translate in the X direction
+
+  inY is the amount to translate in the Y direction
+
+  inZ is the amount to translate in the Z direction
+
+RETURN VALUE
+============
+
+A 4x4 matrix with elements from the Ring. Expression(Integer) is the default.
+
+ translate(0.5,0.4,0.3)
+
+  +1.0  0.0  0.0  0.5+
+  |                  |
+  |0.0  1.0  0.0  0.4|
+  |                  |
+  |0.0  0.0  1.0  0.3|
+  |                  |
+  +0.0  0.0  0.0  1.0+
+                                  Type: DenavitHartenbergMatrix(Float)
+
+ translate(0.5,-0.4,0.3)
+
+  +1.0  0.0  0.0   0.5 +
+  |                    |
+  |0.0  1.0  0.0  - 0.4|
+  |                    |
+  |0.0  0.0  1.0   0.3 |
+  |                    |
+  +0.0  0.0  0.0   1.0 +
+                                  Type: DenavitHartenbergMatrix(Float)
+
+Note that arguments of 0's is equivalent to calling the identity function.
+
+ translate(0,0,0)
+
+  +1  0  0  0+
+  |          |
+  |0  1  0  0|
+  |          |
+  |0  0  1  0|
+  |          |
+  +0  0  0  1+
+                    Type: DenavitHartenbergMatrix(Expression(Integer))
+
+NOTES
+=====
+
+REFERENCES
+==========
+
+Paul, Richard "Robot Manipulators" MIT Press 1981 ISBN 0-262-16082-X
+
+SEE ALSO
+========
+
+o )show DenavitHartenbergMatrix
+o )d op identity
+o )d op rotatex
+o )d op rotatey
+o )d op rotatez
+o )d op scale
+o )d op translate
 
 \end{chunk}
 \pagehead{DenavitHartenbergMatrix}{DHMATRIX}
@@ -24216,8 +24897,6 @@ o )show DenavitHartenbergMatrix
 \end{tabular}
 
 \begin{chunk}{domain DHMATRIX DenavitHartenbergMatrix}
-
-  
 )abbrev domain DHMATRIX DenavitHartenbergMatrix
 ++ Author: Timothy Daly
 ++ Date Created: June 26, 1991
@@ -24262,19 +24941,33 @@ DenavitHartenbergMatrix(R): Exports == Implementation where
   Exports ==> MatrixCategory(R,row,col) with
    "*": (%, Point R) -> Point R
      ++ t*p applies the dhmatrix t to point p
+     ++
+     ++X rotatex(30)*point([1,2,3])
    identity: () -> %
      ++ identity() create the identity dhmatrix
+     ++
+     ++ identity()
    rotatex: R -> %
      ++ rotatex(r) returns a dhmatrix for rotation about axis x for r degrees
+     ++
+     ++X rotatex(30)
    rotatey: R -> %
      ++ rotatey(r) returns a dhmatrix for rotation about axis y for r degrees
+     ++
+     ++X rotatey(30)
    rotatez: R -> %
      ++ rotatez(r) returns a dhmatrix for rotation about axis z for r degrees
+     ++
+     ++X rotatez(30)
    scale: (R,R,R) -> %
      ++ scale(sx,sy,sz) returns a dhmatrix for scaling in the x, y and z
      ++ directions
+     ++
+     ++X scale(0.5,0.5,0.5)
    translate: (R,R,R) -> %
      ++ translate(x,y,z) returns a dhmatrix for translation by x, y, and z
+     ++
+     ++X translate(1.0,2.0,3.0)
  
   Implementation ==> Matrix(R) add
 
@@ -102268,13 +102961,17 @@ Point(R:Ring) : Exports == Implementation where
       for x in l for i in minIndex(pt).. repeat
         pt.i := x
       pt
+
     dimension p == (# p)::PI  -- Vector returns NonNegativeInteger...?
+
     convert(l:List R):% == point(l)
+
     cross(p0, p1) ==
       #p0 ^=3 or #p1^=3 => error "Arguments to cross must be three dimensional"      
       point [p0.2 * p1.3 - p1.2 * p0.3, _
              p1.1 * p0.3 - p0.1 * p1.3, _
              p0.1 * p1.2 - p1.1 * p0.2]
+
     extend(p,l) == concat(p,point l)
 
 \end{chunk}
diff --git a/books/bookvolbib.pamphlet b/books/bookvolbib.pamphlet
index 2282276..5ca5716 100644
--- a/books/bookvolbib.pamphlet
+++ b/books/bookvolbib.pamphlet
@@ -14609,10 +14609,14 @@ Science of Computer Programming V25 No.1 Oct 1995 pp41-61 Elesevier
 \end{chunk}
 
 \index{Paul, Richard}
-\begin{chunk}{ignore}
-\bibitem[Paul 81]{Paul81} Paul, Richard
+\begin{chunk}{axiom.bib}
+@book{Paul81,
+  author = "Paul, Richard",
   title = "Robot Manipulators",
-MIT Press 1981
+  year = "1981",
+  publisher = "MIT Press",
+  isbn = "0-262-16082-X"
+}
 
 \end{chunk}
 
diff --git a/changelog b/changelog
index a58dede..1a98472 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20141116 tpd src/axiom-website/patches.html 20141116.01.tpd.patch
+20141116 tpd books/bookvol10.3 prototype man-page style help for functions
 20141113 tpd src/axiom-website/patches.html 20141113.01.tpd.patch
 20141113 tpd books/bookvol5 inline object structures using macros
 20141113 tpd src/interp/interp-proclaims.lisp remove object structures
diff --git a/patch b/patch
index aec97ef..ac660fb 100644
--- a/patch
+++ b/patch
@@ -1,3 +1,4 @@
-books/bookvol5 turn object rep into macro form for inline
+books/bookvol10.3 prototype man-page style help for functions
+
+Axiom needs function-level help files. Prototype these for DHMATRIX.
 
-Object wrapping/unwrapping is now macros for inline performance.
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index b521729..31a3613 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4700,6 +4700,8 @@ books/bookvol5 fix remake handling of source files<br/>
 books/bookvol5 make obj fns into macros for performance<br/>
 <a href="patches/20141113.01.tpd.patch">20141113.01.tpd.patch</a>
 books/bookvol5 inline object structures using macros<br/>
+<a href="patches/20141116.01.tpd.patch">20141116.01.tpd.patch</a>
+books/bookvol10.3 prototype man-page style help for functions<br/>
  </body>
 </html>
 
