Index: Include/Classes/System/Drawing/Point.ab
===================================================================
--- Include/Classes/System/Drawing/Point.ab	(revision 212)
+++ Include/Classes/System/Drawing/Point.ab	(revision 223)
@@ -4,7 +4,7 @@
 #define __SYSTEM_DRAWING_POINT_AB__
 
-#include <Classes/System/Drawing/PointF.ab>
-#include <Classes/System/Drawing/Size.ab>
-#include <Classes/System/Drawing/SizeF.ab>
+#require <Classes/System/Drawing/PointF.ab>
+#require <Classes/System/Drawing/Size.ab>
+#require <Classes/System/Drawing/SizeF.ab>
 
 Class Point
@@ -20,10 +20,5 @@
 	End Sub
 
-	Sub Point(pt As Point)
-		x = pt.x
-		y = pt.y
-	End Sub
-
-	Sub Point(ByRef sz As Size)
+	Sub Point(sz As Size)
 		x = sz.Width
 		y = sz.Height
@@ -54,10 +49,5 @@
 		Return x = 0 And y = 0
 	End Function
-/*
-	Sub Operator = (ByRef pt As Point)
-		x = pt.x
-		y = pt.y
-	End Sub
-*/
+
 	Function Operator + (pt As Point) As Point
 		Return Add(This, pt)
Index: Include/Classes/System/Drawing/Rectangle.ab
===================================================================
--- Include/Classes/System/Drawing/Rectangle.ab	(revision 212)
+++ Include/Classes/System/Drawing/Rectangle.ab	(revision 223)
@@ -4,8 +4,8 @@
 #define __SYSTEM_DRAWING_RECTANGLE_AB__
 
-#include <Classes/System/Math.ab>
-#include <Classes/System/Drawing/RectangleF.ab>
-#include <Classes/System/Drawing/Point.ab>
-#include <Classes/System/Drawing/Size.ab>
+#require <Classes/System/Math.ab>
+#require <Classes/System/Drawing/RectangleF.ab>
+#require <Classes/System/Drawing/Point.ab>
+#require <Classes/System/Drawing/Size.ab>
 
 Class Rectangle
@@ -32,13 +32,9 @@
 	End Sub
 
-	Sub Rectangle(ByRef r As Rectangle)
-		x = r.x
-		y = r.y
-		width = r.width
-		height = r.height
-	End Sub
-
 	Sub Rectangle(ByRef r As RECT)
-		This = FromLTRB(r.left, r.top, r.right, r.bottom)
+		x = r.left
+		y = r.top
+		width = r.right - r.left
+		height = r.top - r.bottom
 	End Sub
 
@@ -111,20 +107,7 @@
 
 	Function IsEmpty() As Boolean
-		If Width <= 0 Or Height <= 0 Then
-			IsEmpty = _System_TRUE
-		Else
-			IsEmpty = _System_FALSE
-		End If
-	End Function
-/*
-	Function Operator = (rc As Rectangle)
-		With rc
-			x = .x
-			y = .y
-			width = .width
-			height = .height
-		End With
-	End Function
-*/
+		Return Width <= 0 Or Height <= 0
+	End Function
+
 	Function Operator == (rc As Rectangle)
 		Return Equals(rc)
@@ -140,25 +123,17 @@
 
 	Function Equals(rc As Rectangle) As Boolean
-		If X = rc.X And Y = rc.Y And Width = rc.Width And Height = rc.Height Then
-			Return True
-		Else
-			Return False
-		End If
+		Return X = rc.X And Y = rc.Y And Width = rc.Width And Height = rc.Height
 	End Function
 
 	Override Function GetHashCode() As Long
-		Return x Xor _System_BSwap(y) Xor width Xor _System_BSwap(height)
+		Return x As DWord Xor _System_BSwap(y As DWord) Xor width As DWord Xor _System_BSwap(height As DWord)
 	End Function
 
 	Static Function FromLTRB(l As Long, t As Long, r As Long, b As Long) As Rectangle
-		return New Rectangle(l, t, r - l, r - b)
+		return New Rectangle(l, t, r - l, b - t)
 	End Function
 
 	Function Contains(x As Long, y As Long) As Boolean
-		If x >= X And x < X + Width And y >= Y And y < Y + Height Then
-			Return True
-		Else
-			Return False
-		End If
+		Return x >= X And x < X + Width And y >= Y And y < Y + Height
 	End Function
 
@@ -168,9 +143,5 @@
 
 	Function Contains(rc As Rectangle) As Boolean
-		If X <= rc.X And rc.Right <= Right And Y <= rc.Y And rc.Bottom <= Bottom Then
-			Return True
-		Else
-			Return False
-		End If
+		Return X <= rc.X And rc.Right <= Right And Y <= rc.Y And rc.Bottom <= Bottom
 	End Function
 
@@ -205,12 +176,8 @@
 
 	Function IntersectsWith(rc As Rectangle) As Boolean
-		If Left < rc.Right And _
+		Return Left < rc.Right And _
 			Top < rc.Bottom And _
 			Right > rc.Left And _
-			Bottom > rc.Top Then
-			Return True
-		Else
-			Return False
-		End If
+			Bottom > rc.Top
 	End Function
 
Index: Include/Classes/System/Drawing/Size.ab
===================================================================
--- Include/Classes/System/Drawing/Size.ab	(revision 212)
+++ Include/Classes/System/Drawing/Size.ab	(revision 223)
@@ -77,5 +77,5 @@
 
 	Override Function GetHashCode() As Long
-		Return width Xor _System_BSwap(height)
+		Return width As DWord Xor _System_BSwap(height As DWord)
 	End Function
 
Index: Include/Classes/System/Drawing/SizeF.ab
===================================================================
--- Include/Classes/System/Drawing/SizeF.ab	(revision 212)
+++ Include/Classes/System/Drawing/SizeF.ab	(revision 223)
@@ -64,20 +64,13 @@
 */
 	Function Equals(sz As SizeF) As Boolean
-		If width = sz.width And height = sz.height Then
-			Equals = _System_TRUE
-		Else
-			Equals = _System_FALSE
-		End If
+		Return width = sz.width And height = sz.height
 	End Function
 
 	Override Function GetHashCode() As Long
 		Return VarPtr(GetDWord(width)) Xor _System_BSwap(VarPtr(GetDWord(height)))
+	End Function
 
 	Function IsEmpty() As Boolean
-		If width = 0 And height = 0 Then
-			Empty = _System_TRUE
-		Else
-			Empty = _System_FALSE
-		End If
+		Return width = 0 And height = 0
 	End Function
 
