Index: src/examples/rational.c
===================================================================
--- src/examples/rational.c	(revision a1d6d80c1ef8e65ed06f390d2aed4fac6d418b6e)
+++ src/examples/rational.c	(revision d1ab5331896c37232a0f28b79dd7fa91637576b1)
@@ -11,6 +11,6 @@
 // Created On       : Mon Mar 28 08:43:12 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Apr  8 11:27:48 2016
-// Update Count     : 21
+// Last Modified On : Wed May  4 14:19:36 2016
+// Update Count     : 24
 // 
 
@@ -20,23 +20,20 @@
 
 int main() {
-	Rational a, b, c;
 	sout | "constructor" | endl;
-	a = rational( 3 );
-	b = rational( 4 );
-	c = rational();
+	Rational a = { 3 }, b = { 4 }, c;
 	sout | a | b | c | endl;
-	a = rational( 4, 8 );
-	b = rational( 5, 7 );
+	a = (Rational){ 4, 8 };
+	b = (Rational){ 5, 7 };
 	sout | a | b | endl;
-	a = rational( -2, -3 );
-	b = rational( 3, -2 );
+	a = (Rational){ -2, -3 };
+	b = (Rational){ 3, -2 };
 	sout | a | b | endl;
-	a = rational( -2, 3 );
-	b = rational( 3, 2 );
+	a = (Rational){ -2, 3 };
+	b = (Rational){ 3, 2 };
 	sout | a | b | endl;
 
 	sout | "logical" | endl;
-	a = rational( -2 );
-	b = rational( -3, 2 );
+	a = (Rational){ -2 };
+	b = (Rational){ -3, 2 };
 	sout | a | b | endl;
 	sout | a == 1 | endl;
@@ -55,9 +52,9 @@
 
 	sout | "conversion" | endl;
-	a = rational( 3, 4 );
+	a = (Rational){ 3, 4 };
 	sout | widen( a ) | endl;
-	a = rational( 1, 7 );
+	a = (Rational){ 1, 7 };
 	sout | widen( a ) | endl;
-	a = rational( 355, 113 );
+	a = (Rational){ 355, 113 };
 	sout | widen( a ) | endl;
 	sout | narrow( 0.75, 4 ) | endl;
@@ -65,7 +62,5 @@
 	sout | narrow( 3.14159265358979, 256 ) | endl;
 
-	Rational x, y;
-	x = rational( 1, 2 );
-	y = rational( 2 );
+	Rational x = { 1, 2 }, y = { 2 };
 	sout | x - y | endl;
 	sout | x > y | endl;
@@ -73,13 +68,12 @@
 	sout | y | denominator( y, -2 ) | y | endl;
 
-	Rational z;
-	z = rational( 0, 5 );
+	Rational z = { 0, 5 };
 	sout | z | endl;
 
 	sout | x | numerator( x, 0 ) | x | endl;
 
-	x = rational( 1, MAX ) + rational( 1, MAX );
+	x = (Rational){ 1, MAX } + (Rational){ 1, MAX };
 	sout | x | endl;
-	x = rational( 3, MAX ) + rational( 2, MAX );
+	x = (Rational){ 3, MAX } + (Rational){ 2, MAX };
 	sout | x | endl;
 
Index: src/libcfa/rational
===================================================================
--- src/libcfa/rational	(revision a1d6d80c1ef8e65ed06f390d2aed4fac6d418b6e)
+++ src/libcfa/rational	(revision d1ab5331896c37232a0f28b79dd7fa91637576b1)
@@ -12,6 +12,6 @@
 // Created On       : Wed Apr  6 17:56:25 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Apr  8 11:38:27 2016
-// Update Count     : 15
+// Last Modified On : Wed May  4 14:11:45 2016
+// Update Count     : 16
 // 
 
@@ -28,7 +28,7 @@
 
 // constructors
-Rational rational();
-Rational rational( long int n );
-Rational rational( long int n, long int d );
+void ?{}( Rational * r );
+void ?{}( Rational * r, long int n );
+void ?{}( Rational * r, long int n, long int d );
 
 // getter/setter for numerator/denominator
Index: src/libcfa/rational.c
===================================================================
--- src/libcfa/rational.c	(revision a1d6d80c1ef8e65ed06f390d2aed4fac6d418b6e)
+++ src/libcfa/rational.c	(revision d1ab5331896c37232a0f28b79dd7fa91637576b1)
@@ -11,6 +11,6 @@
 // Created On       : Wed Apr  6 17:54:28 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Apr 21 07:33:03 2016
-// Update Count     : 22
+// Last Modified On : Wed May  4 14:16:14 2016
+// Update Count     : 25
 // 
 
@@ -53,15 +53,16 @@
 // constructors
 
-Rational rational() {
-    return (Rational){ 0, 1 };
+void ?{}( Rational * r ) {
+    r{ 0, 1 };
 } // rational
 
-Rational rational( long int n ) {
-    return (Rational){ n, 1 };
+void ?{}( Rational * r, long int n ) {
+    r{ n, 1 };
 } // rational
 
-Rational rational( long int n, long int d ) {
+void ?{}( Rational * r, long int n, long int d ) {
     long int t = simplify( &n, &d );					// simplify
-    return (Rational){ n / t, d / t };
+    r->numerator = n / t;
+	r->denominator = d / t;
 } // rational
 
@@ -172,6 +173,5 @@
 Rational narrow( double f, long int md ) {
 	if ( md <= 1 ) {									// maximum fractional digits too small?
-		Rational t = rational( f, 1 );					// truncate fraction
-		return t;
+		return (Rational){ f, 1};						// truncate fraction
 	} // if
 
@@ -199,6 +199,5 @@
 		k[2] = x * k[1] + k[0]; k[0] = k[1]; k[1] = k[2];
 	} // for
-	Rational t = rational( neg ? -h[1] : h[1], k[1] );
-	return t;
+	return (Rational){ neg ? -h[1] : h[1], k[1] };
 } // narrow
 
