 		/**
 		 * Returns the number of devices currently connected, regardless of whether they're valid or not.
 		 *
+		 * @see #maintainPlayerPositions
 		 * @see #getDeviceAt()
+		 * @see #getDeviceTypeAt()
 		 */
 		public function getNumDevices():uint {
 			return gameInputDevices.length;
 		}
 
+		/**
+		 * Returns the <code>GameInputDevice</code> associated with a player index, if any.
+		 *
+		 * <p>The value returned from this function can be <code>null</code>, especially if <code>maintainPlayerPositions</code>
+		 * is set to <code>true</code> and the index refers to a gamepad that has been removed.</p>
+		 *
+		 * @see #maintainPlayerPositions
+		 * @see #getNumDevices()
+		 * @see #getDeviceTypeAt()
+		 */
 		public function getDeviceAt(__index:uint):GameInputDevice {
 			return gameInputDevices.length > __index && gameInputDevices[__index] != null ? gameInputDevices[__index] : null;
 		}
 
+		/**
+		 * Returns the built-in id of the gamepad type at a certain position.
+		 *
+		 * <p>The value returned from this function can be <code>null</code> if <code>maintainPlayerPositions</code>
+		 * is set to <code>true</code> and the index refers to a gamepad that has been removed, or if the gamepad at that
+		 * location has not been properly identified by KeyActionBinder.</p>
+		 *
+		 * <p>Check the controllers.json file for a list of supported gamepads, and their ids.</p>
+		 *
+		 * @see #maintainPlayerPositions
+		 * @see #getNumDevices()
+		 * @see #getDeviceAt()
+		 */
 		public function getDeviceTypeAt(__index:uint):String {
 			return gameInputDeviceDefinitions.length > __index && gameInputDeviceDefinitions[__index] != null ? gameInputDeviceDefinitions[__index].getType() : null;
 		}
 
+		/**
+		 * Returns the current identified platform. This is a list of strings that can contain more than one platform id.
+		 *
+		 * <p>Check the controllers.json file for a list of supported platforms, and their ids.</p>
+		 */
 		public function getPlatformTypes():Vector.<String> {
 			var platforms:Vector.<String> = new Vector.<String>();
 			for (var i:int = 0; i < knownGamepadPlatforms.length; i++) {

		// ================================================================================================================
		// STATIC CONSTRUCTOR ---------------------------------------------------------------------------------------------

		public static function init(__stage:Stage):void  {
			stage = __stage;


		// ================================================================================================================
		// CONSTRUCTOR ----------------------------------------------------------------------------------------------------

		/**
		 * Create a new KeyActionBinder instance.
		 *
		 * <p>Each instance has its own input bindings and actions.</p>
		 *
		 * <p>More than one KeyActionBinder instance can exist and be active at the same time.</p>
		 *
		 * @see #init()
		 */
		public function KeyActionBinder() {
			_alwaysPreventDefault = true;
			_maintainPlayerPositions = false;
