diff --git a/Source/OpenTK/Input/Keyboard.cs b/Source/OpenTK/Input/Keyboard.cs
new file mode 100644
index 00000000..139637b8
--- /dev/null
+++ b/Source/OpenTK/Input/Keyboard.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenTK.Input
+{
+ ///
+ /// Provides access to keyboard devices.
+ ///
+ public static class Keyboard
+ {
+ #region Fields
+
+ static IKeyboardDriver driver;
+
+ #endregion
+
+ #region Constructors
+
+ static Keyboard()
+ {
+ //driver = Platform.Factory.Default.CreateKeyboardDriver();
+ }
+
+ #endregion
+
+ #region Public Members
+
+ ///
+ /// Retrieves the KeyboardState for the specified keyboard device.
+ ///
+ /// The index of the keyboard device.
+ /// A structure containing the state of the keyboard device.
+ public static KeyboardState GetState(int index)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/OpenTK/Input/KeyboardState.cs b/Source/OpenTK/Input/KeyboardState.cs
new file mode 100644
index 00000000..dfda3b66
--- /dev/null
+++ b/Source/OpenTK/Input/KeyboardState.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenTK.Input
+{
+ ///
+ /// Encapsulates the state of a keyboard device.
+ ///
+ public struct KeyboardState : IEquatable
+ {
+ #region Constructors
+
+ internal KeyboardState(Key[] keys)
+ {
+ }
+
+ #endregion
+
+ #region Public Members
+
+ #endregion
+
+ #region IEquatable Members
+
+ ///
+ /// Compares two KeyboardState instances.
+ ///
+ /// The instance to compare two.
+ /// True, if both instances are equal; false otherwise.
+ public bool Equals(KeyboardState other)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/OpenTK/Input/Mouse.cs b/Source/OpenTK/Input/Mouse.cs
new file mode 100644
index 00000000..174d1ccb
--- /dev/null
+++ b/Source/OpenTK/Input/Mouse.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenTK.Input
+{
+ ///
+ /// Provides access to mouse devices.
+ ///
+ public static class Mouse
+ {
+ #region Fields
+
+ static IMouseDriver driver;
+
+ #endregion
+
+ #region Constructors
+
+ static Mouse()
+ {
+ }
+
+ #endregion
+
+ #region Public Members
+
+ ///
+ /// Retrieves the MouseState for the specified mouse device.
+ ///
+ /// The index of the mouse device.
+ /// A structure containing the state of the mouse device.
+ public static MouseState GetState(int index)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/OpenTK/Input/MouseState.cs b/Source/OpenTK/Input/MouseState.cs
new file mode 100644
index 00000000..85d013fa
--- /dev/null
+++ b/Source/OpenTK/Input/MouseState.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenTK.Input
+{
+ ///
+ /// Encapsulates the state of a mouse device.
+ ///
+ public struct MouseState : IEquatable
+ {
+ #region Constructors
+
+ internal MouseState(MouseButton[] buttons)
+ {
+ }
+
+ #endregion
+
+ #region IEquatable Members
+
+ ///
+ /// Compares two MouseState instances for equality.
+ ///
+ /// The instance to compare to.
+ /// True, if both instances are equal; false otherwise.
+ public bool Equals(MouseState other)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}