 			setProperty('group', group);
 		}
 
+		/**
+		*	sets up label clicks to trigger checkbox clicks
+		**/
+		public function set label (helper:TextFieldHelper) :void
+		{
+			helper.display_object.addEventListener('click', function (e:Event) :void
+			{
+				display_object.dispatchEvent(new MouseEvent('click'));
+			});
+		}
+
+		/**
+		*	"selected" property helper for databinding:
+		*	ObjectProxy descendants lose track of "this" in scope-chaining contexts
+		*	(anonymous functions or closures, for ex.)
+		*	this getter/setter pair allows us to access the property w/o using "this"
+		**/
+		public function set selected (b:Boolean) :void
+		{
+			setProperty('selected', b)
+		}
+
+		public function get selected () :Boolean
+		{
+			return getProperty('selected');
+		}
+
+		/**
+		*	"value" property helper for databinding:
+		*	ObjectProxy descendants lose track of "this" in scope-chaining contexts
+		*	(anonymous functions or closures, for ex.)
+		*	this getter/setter pair allows us to access the property w/o using "this"
+		**/
+		public function set value (s:String) :void
+		{
+			setProperty('value', s)
+		}
+
+		public function get value () :String
+		{
+			return getProperty('value');
+		}
+
 
 		// >>> PUBLIC METHODS
 		public function RadioButtonHelper ()

			display_object.addEventListener('change', function (e:Object) :void
			{
				// prevent superfluous event firing
				if (this.selected != null && object[property] != this.value)
				{
					// update data object
					object[property] = this.value;
				}
			});


		**/
		public function set checked (checked:Boolean) :void
		{
			selected = true;
		}

		/**
