14.3.12 from randy using for the basic code
14.3.12 from randy using for the basic code