diff --git a/src/hb-subset-input.cc b/src/hb-subset-input.cc
index 121a688..7a9b81d 100644
--- a/src/hb-subset-input.cc
+++ b/src/hb-subset-input.cc
@@ -198,8 +198,6 @@
  * hb_subset_input_reference: (skip)
  * @subset_input: a subset_input.
  *
- *
- *
  * Return value:
  *
  * Since: 1.8.0
@@ -235,6 +233,8 @@
  * hb_subset_input_unicode_set:
  * @subset_input: a subset_input.
  *
+ * Return value: pointer to the set of unicode codepoints to retain.
+ *
  * Since: 1.8.0
  **/
 HB_EXTERN hb_set_t *
@@ -247,6 +247,8 @@
  * hb_subset_input_glyph_set:
  * @subset_input: a subset_input.
  *
+ * Return value: pointer to the set of glyph ids to retain.
+ *
  * Since: 1.8.0
  **/
 HB_EXTERN hb_set_t *
@@ -255,18 +257,43 @@
   return subset_input->glyphs;
 }
 
+/**
+ * hb_subset_input_nameid_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of name ids to retain.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_nameid_set (hb_subset_input_t *subset_input)
 {
   return subset_input->name_ids;
 }
 
+/**
+ * hb_subset_input_namelangid_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of name language ids to retain.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_namelangid_set (hb_subset_input_t *subset_input)
 {
   return subset_input->name_languages;
 }
 
+
+/**
+ * hb_subset_input_layout_features_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of feature tags to retain.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_layout_features_set (hb_subset_input_t *subset_input)
 {
@@ -275,7 +302,7 @@
 
 HB_EXTERN void
 hb_subset_input_set_retain_all_features (hb_subset_input_t *subset_input,
-				       hb_bool_t value)
+					 hb_bool_t value)
 {
   subset_input->retain_all_layout_features = value;
 }
@@ -287,18 +314,46 @@
 }
 
 
+/**
+ * hb_subset_input_drop_tabes_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of table tags which specifies tables
+ *		 to be dropped.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_drop_tables_set (hb_subset_input_t *subset_input)
 {
   return subset_input->drop_tables;
 }
 
+/**
+ * hb_subset_input_no_subset_tabes_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of table tags which specifies tables
+ *		 that should not have subsetting applied to them.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_no_subset_tables_set (hb_subset_input_t *subset_input)
 {
   return subset_input->no_subset_tables;
 }
 
+
+/**
+ * hb_subset_input_get_flag:
+ * @subset_input: a subset_input.
+ * @flag: which flag to check.
+ *
+ * Return value: value of the specified flag.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_bool_t
 hb_subset_input_get_flag (hb_subset_input_t *input,
 			  hb_subset_flag_t flag)
@@ -324,6 +379,16 @@
   }
 }
 
+/**
+ * hb_subset_input_set_flag:
+ * @subset_input: a subset_input.
+ * @flag: which flag to set.
+ * @value: new value for the flag.
+ *
+ * Set the specified flag to @value.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN void
 hb_subset_input_set_flag (hb_subset_input_t *input,
 			  hb_subset_flag_t flag,
diff --git a/src/hb-subset.h b/src/hb-subset.h
index 8190458..7fe4dcf 100644
--- a/src/hb-subset.h
+++ b/src/hb-subset.h
@@ -39,35 +39,40 @@
 
 typedef struct hb_subset_input_t hb_subset_input_t;
 
+/**
+ * hb_subset_flag_t:
+ * @HB_SUBSET_FLAG_HINTING: If set hinting instructions will be retained in
+ * the produced subset. Otherwise hinting instructions will be dropped.
+ * Defaults to true.
+ * @HB_SUBSET_FLAG_RETAIN_GIDS: If set glyph indices will not be modified in
+ * the produced subset. If glyphs are dropped their indices will be retained
+ * as an empty glyph. Defaults to false.
+ * @HB_SUBSET_FLAG_DESUBROUTINIZE: If set and subsetting a CFF font the
+ * subsetter will attempt to remove subroutines from the CFF glyphs.
+ * Defaults to false.
+ * @HB_SUBSET_FLAG_NAME_LEGACY: If set non-unicode name records will be
+ * retained in the subset. Defaults to false.
+ * @HB_SUBSET_FLAG_SET_OVERLAPS_FLAG:  If set the subsetter will set the
+ * OVERLAP_SIMPLE flag on each simple glyph. Defaults to false.
+ * @HB_SUBSET_FLAG_PASSTHROUGH_UNRECOGNIZED: If set the subsetter will not
+ * drop unrecognized tables and instead pass them through untouched.
+ * Defaults to false.
+ * @HB_SUBSET_FLAG_NOTDEF_OUTLINE: If set the notdef glyph outline will be
+ * retained in the final subset. Defaults to false.
+ *
+ * List of boolean properties that can be configured on the subset input.
+ *
+ * Since: REPLACE
+ **/
 typedef enum
 {
-  // If set hinting instructions will be retained in the produced subset.
-  // Otherwise hinting instructions will be dropped.
-  // Defaults to true.
-  HB_SUBSET_FLAG_HINTING =		    1,
-  // If set glyph indices will not be modified in the produced subset.
-  // If glyphs are dropped their indices will be retained as an empty
-  // glyph.
-  // Defaults to false.
-  HB_SUBSET_FLAG_RETAIN_GIDS =		    2,
-  // If set and subsetting a CFF font the subsetter will attempt to
-  // remove subroutines from the CFF glyphs.
-  // Defaults to false.
-  HB_SUBSET_FLAG_DESUBROUTINIZE =	    3,
-  // If set non-unicode name records will be retained in the subset.
-  // Defaults to false.
-  HB_SUBSET_FLAG_NAME_LEGACY =		    4,
-  // If set the subsetter will set the OVERLAP_SIMPLE flag on each
-  // simple glyph.
-  // Defaults to false.
-  HB_SUBSET_FLAG_SET_OVERLAPS_FLAG =	    5,
-  // If set the subsetter will not drop unrecognized tables and instead
-  // pass them through untouched.
-  // Defaults to false.
-  HB_SUBSET_FLAG_PASSTHROUGH_UNRECOGNIZED = 6,
-  // If set the notdef glyph outline will be retained in the final subset.
-  // Defaults to false.
-  HB_SUBSET_FLAG_NOTDEF_OUTLINE =	    7,
+  HB_SUBSET_FLAG_HINTING = 0,
+  HB_SUBSET_FLAG_RETAIN_GIDS,
+  HB_SUBSET_FLAG_DESUBROUTINIZE,
+  HB_SUBSET_FLAG_NAME_LEGACY,
+  HB_SUBSET_FLAG_SET_OVERLAPS_FLAG,
+  HB_SUBSET_FLAG_PASSTHROUGH_UNRECOGNIZED,
+  HB_SUBSET_FLAG_NOTDEF_OUTLINE,
 } hb_subset_flag_t;
 
 HB_EXTERN hb_subset_input_t *
