Starting documentation and privatising unnecessary exports
diff --git a/openstack/networking/v2/extensions/results.go b/openstack/networking/v2/extensions/results.go
index c67bd01..42e7fc3 100644
--- a/openstack/networking/v2/extensions/results.go
+++ b/openstack/networking/v2/extensions/results.go
@@ -5,6 +5,7 @@
 	"github.com/rackspace/gophercloud/pagination"
 )
 
+// Extension is a struct that represents a Neutron extension.
 type Extension struct {
 	Updated     string        `json:"updated"`
 	Name        string        `json:"name"`
@@ -14,10 +15,13 @@
 	Description string        `json:"description"`
 }
 
+// ExtensionPage is the page returned by a pager when traversing over a
+// collection of extensions.
 type ExtensionPage struct {
 	pagination.SinglePageBase
 }
 
+// IsEmpty checks whether an ExtensionPage struct is empty.
 func (r ExtensionPage) IsEmpty() (bool, error) {
 	is, err := ExtractExtensions(r)
 	if err != nil {
@@ -26,6 +30,9 @@
 	return len(is) == 0, nil
 }
 
+// ExtractExtensions accepts a Page struct, specifically an ExtensionPage
+// struct, and extracts the elements into a slice of Extension structs. In other
+// words, a generic collection is mapped into a relevant slice.
 func ExtractExtensions(page pagination.Page) ([]Extension, error) {
 	var resp struct {
 		Extensions []Extension `mapstructure:"extensions"`