diff --git a/raylib.ads b/raylib.ads
index 288c3dd..afe8390 100644
--- a/raylib.ads
+++ b/raylib.ads
@@ -668,12 +668,21 @@ package Raylib is
 
 	No_Image : Image;
 
+	--~type Texture is record
+		--~Id      : Natural      := 0;
+		--~Width   : Integer      := 0;
+		--~Height  : Integer      := 0;
+		--~Mipmaps : Integer      := 1;
+		--~Format  : Pixel_Format := Pixel_Format_None;
+	--~end record with Convention => C_Pass_By_Copy;
+
 	type Texture is record
-		Id      : Natural      := 0;
-		Width   : Integer      := 0;
-		Height  : Integer      := 0;
-		Mipmaps : Integer      := 1;
-		Format  : Pixel_Format := Pixel_Format_None;
+		Id      : Natural;
+		Width   : Integer;
+		Height  : Integer;
+		Mipmaps : Integer;
+		--~Format  : Pixel_Format;
+		Format  : Integer;
 	end record with Convention => C_Pass_By_Copy;
 
 	No_Texture : Texture;
@@ -712,6 +721,8 @@ package Raylib is
 		Glyphs        : access Glyph_Info := null;
 	end record with Convention => C_Pass_By_Copy;
 
+	No_Font : Font;
+
 	type Camera_3D is record
 		Position      : Vector_3D         := (0.0, 0.0, 0.0);
 		Target        : Vector_3D         := (0.0, 0.0, 0.0);
@@ -1508,10 +1519,12 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure SetTargetFPS (int fps) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Set_Target_FPS (
+		FPS : Integer := 60
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "SetTargetFPS";
 
 	--~function float GetFrameTime (void) with
 		--~Import        => True,
@@ -1823,45 +1836,57 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~function bool IsKeyPressed (int key) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Is_Key_Pressed (
+		Key : Keyboard_Key := Key_Null
+	) return Logical with
+		Import        => True,
+		Convention    => C,
+		External_Name => "IsKeyPressed";
 
-	--~function bool IsKeyPressedRepeat (int key) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Is_Key_Pressed_Repeat (
+		Key : Keyboard_Key := Key_Null
+	) return Logical with
+		Import        => True,
+		Convention    => C,
+		External_Name => "IsKeyPressedRepeat";
 
-	--~function bool IsKeyDown (int key) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Is_Key_Down (
+		Key : Keyboard_Key := Key_Null
+	) return Logical with
+		Import        => True,
+		Convention    => C,
+		External_Name => "IsKeyDown";
 
-	--~function bool IsKeyReleased (int key) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Is_Key_Released (
+		Key : Keyboard_Key := Key_Null
+	) return Logical with
+		Import        => True,
+		Convention    => C,
+		External_Name => "IsKeyReleased";
 
-	--~function bool IsKeyUp (int key) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Is_Key_Up (
+		Key : Keyboard_Key := Key_Null
+	) return Logical with
+		Import        => True,
+		Convention    => C,
+		External_Name => "IsKeyUp";
 
-	--~function int GetKeyPressed (void) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Get_Key_Pressed return Keyboard_Key with
+		Import        => True,
+		Convention    => C,
+		External_Name => "GetKeyPressed";
 
-	--~function int GetCharPressed (void) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Get_Character_Pressed return Character with
+		Import        => True,
+		Convention    => C,
+		External_Name => "GetCharPressed";
 
-	--~procedure SetExitKey (int key) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Set_Exit_Key (
+		Key : Keyboard_Key := Key_Escape
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "SetExitKey";
 
 	--~function bool IsGamepadAvailable (int gamepad) with
 		--~Import        => True,
@@ -2073,10 +2098,16 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure DrawLine (int startPosX, int startPosY, int endPosX, int endPosY, Color color) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Draw_Line (
+		X0   : Integer := 0;
+		Y0   : Integer := 0;
+		X1   : Integer := 0;
+		Y1   : Integer := 0;
+		Tint : Color   := Black
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "DrawLine";
 
 	--~procedure DrawLineV (Vector2 startPos, Vector2 endPos, Color color) with
 		--~Import        => True,
@@ -2153,10 +2184,16 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure DrawRectangle (int posX, int posY, int width, int height, Color color) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Draw_Rectangle (
+		X      : Integer := 0;
+		Y      : Integer := 0;
+		Width  : Integer := 0;
+		Height : Integer := 0;
+		Tint   : Color   := Black
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "DrawRectangle";
 
 	--~procedure DrawRectangleV (Vector2 position, Vector2 size, Color color) with
 		--~Import        => True,
@@ -2728,10 +2765,12 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~function Texture2D LoadTexture (const char *fileName) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Load_Texture (
+		File_Path : String := ""
+	) return Texture with
+		Import        => True,
+		Convention    => C,
+		External_Name => "LoadTexture";
 
 	--~function Texture2D LoadTextureFromImage (Image image) with
 		--~Import        => True,
@@ -2753,10 +2792,12 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure UnloadTexture (Texture2D texture) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Unload_Texture (
+		Data : Texture := No_Texture
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "UnloadTexture";
 
 	--~function bool IsRenderTextureReady (RenderTexture2D target) with
 		--~Import        => True,
@@ -2793,10 +2834,15 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure DrawTexture (Texture2D texture, int posX, int posY, Color tint) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Draw_Texture (
+		Data : Texture := No_Texture;
+		X    : Integer := 0;
+		Y    : Integer := 0;
+		Tint : Color   := White
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "DrawTexture";
 
 	--~procedure DrawTextureV (Texture2D texture, Vector2 position, Color tint) with
 		--~Import        => True,
@@ -2813,10 +2859,17 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure DrawTexturePro (Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Draw_Texture_Pro (
+		Data        : Texture   := No_Texture;
+		Source      : Rectangle := No_Rectangle;
+		Destination : Rectangle := No_Rectangle;
+		Origin      : Vector_2D := (0.0, 0.0);
+		Rotation    : Float     := 0.0;
+		Tint        : Color     := White
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "DrawTexturePro";
 
 	--~procedure DrawTextureNPatch (Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint) with
 		--~Import        => True,
@@ -2898,10 +2951,10 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~function Font GetFontDefault (void) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	function Get_Font_Default return Font with
+		Import        => True,
+		Convention    => C,
+		External_Name => "GetFontDefault";
 
 	--~function Font LoadFont (const char *fileName) with
 		--~Import        => True,
@@ -2953,25 +3006,47 @@ package Raylib is
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure DrawFPS (int posX, int posY) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
-
-	--~procedure DrawText (const char *text, int posX, int posY, int fontSize, Color color) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Draw_FPS (
+		X : Integer := 0;
+		Y : Integer := 0
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "DrawFPS";
+--~################################################################
+--~################################################################
+--~################################################################
+	procedure Draw_Text (
+		Text : String  := "";
+		--~Text : access String  := null;
+		--~Text : String  := "";
+		X    : Integer := 0;
+		Y    : Integer := 0;
+		Size : Integer := 32;
+		Tint : Color   := Dark_Gray
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "DrawText";
 
 	--~procedure DrawTextEx (Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint) with
 		--~Import        => True,
 		--~Convention    => C,
 		--~External_Name => "";
 
-	--~procedure DrawTextPro (Font font, const char *text, Vector2 position, Vector2 origin, float rotation, float fontSize, float spacing, Color tint) with
-		--~Import        => True,
-		--~Convention    => C,
-		--~External_Name => "";
+	procedure Draw_Text_Pro (
+		Data      : Font      := Get_Font_Default;
+		Text      : String    := "NOOO";
+		Position  : Vector_2D := (0.0, 0.0);
+		Origin    : Vector_2D := (0.0, 0.0);
+		Rotation  : Float     := 0.0;
+		Font_Size : Float     := 0.0;
+		Spacing   : Float     := 0.0;
+		Tint      : Color     := Dark_Gray
+	) with
+		Import        => True,
+		Convention    => C,
+		External_Name => "DrawTextPro";
 
 	--~procedure DrawTextCodepoint (Font font, int codepoint, Vector2 position, float fontSize, Color tint) with
 		--~Import        => True,
diff --git a/texture.png b/texture.png
new file mode 100644
index 0000000..e9b69e9
Binary files /dev/null and b/texture.png differ
diff --git a/window.adb b/window.adb
index f50781c..925acd5 100644
--- a/window.adb
+++ b/window.adb
@@ -3,20 +3,55 @@ use  Raylib;
 
 procedure Window is
 
+	Text : String := "Heyo world!" & Character'Val (0);
+
+	Dragdown : Texture;
+
+	X : Integer := 120;
+	Y : Integer := 120;
+
 begin
 
 	Open_Window (720, 360, "Heyo Raylib!" & Character'Val (0));
 
+	Set_Exit_Key   (Key_Q); -- Default is Key_Escape
+	Set_Target_FPS (72);    -- Default is 60
+
+	Dragdown := Load_Texture ("./texture.png" & Character'Val (0));
+
 	Main_Loop: loop
 		exit when Window_Should_Close;
 		--
 		Begin_Drawing;
 		--
-		Clear_Background (Blue);
+		Clear_Background (Sky_Blue);
+		--
+		Draw_Texture     (Dragdown, (Get_Screen_Width - Dragdown.Width) / 2, (Get_Screen_Height - Dragdown.Height) / 2);
+		Draw_Texture     (Dragdown, 100, 100, White);
+		Draw_Texture_Pro (Dragdown, (0.0, 0.0, 420.0, 420.0), (200.0, 0.0, 420.0, 420.0));
+		--~Data        : Texture   := No_Texture;
+		--~Source      : Rectangle := No_Rectangle;
+		--~Destination : Rectangle := No_Rectangle;
+		--~Origin      : Vector_2D := (0.0, 0.0);
+		--~Rotation    : Float     := 0.0;
+		--~Tint        : Color     := White
+		Draw_Text        ("Heyo world!" & Character'Val (0), 30, 30, 32, Light_Gray);
+		Draw_Text        (Text, 30, 30, 32, Black);
+		Draw_Text_Pro    (Get_Font_Default, Text, (90.0, 90.0), (9.0, 9.0), 0.0, 32.0, 4.0, Red);
+		Draw_FPS         (60, 60);
+		Draw_Line        (0, 0, 300, 300, Red);
+		Draw_Rectangle   (120, 120, 30, 60, Green);
+		Draw_FPS         (X, Y);
+		if Is_Key_Pressed (Key_W) then Y := Y - 10; end if;
+		if Is_Key_Pressed (Key_S) then Y := Y + 10; end if;
+		if Is_Key_Pressed (Key_A) then X := X - 10; end if;
+		if Is_Key_Pressed (Key_D) then X := X + 10; end if;
 		--
 		End_Drawing;
 	end loop Main_Loop;
 
+	Unload_Texture (Dragdown);
+
 	Close_Window;
 
 end Window;