diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ef3b042
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,16 @@
+Copyright (C) 2012 K. Arthur Endsley (kaendsle@mtu.edu)
+Michigan Tech Research Institute (MTRI)
+3600 Green Court, Suite 100, Ann Arbor, MI, 48105
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
diff --git a/README.md b/README.md
index 4b142b6..444df58 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,19 @@
# Wicket #
##########
-Updated **April 8, 2012** by K. Arthur Endsley
+Updated **October 17, 2012** by K. Arthur Endsley
+Check out the [live demo](http://geojam.net/static/wicket/doc/).
+
+#############
+## License ##
+#############
+
+Wicket is released under the [GNU General Public License version 3 (GPLv3)](http://www.gnu.org/licenses/gpl.html). Accordingly:
+
+> This program is free software: you can redistribute it and/or modify
+> it under the terms of the GNU General Public License as published by
+> the Free Software Foundation, either version 3 of the License, or
+> (at your option) any later version.
################
## Motivation ##
@@ -22,26 +34,27 @@ That is what Wicket aspires to be: lightweight, framework-agnostic, and useful.
### Acknowledgements ###
########################
-The following open sources were borrowed from; they retain all their original rights:
+Many thanks to the following sources of inspiration, which retain all their original rights:
* The OpenLayers 2.7 WKT module (OpenLayers.Format.WKT)
* Chris Pietshmann's [article on converting Bing Maps shapes (VEShape) to WKT](http://pietschsoft.com/post/2009/04/04/Virtual-Earth-Shapes-%28VEShape%29-to-WKT-%28Well-Known-Text%29-and-Back-using-JavaScript.aspx)
* Charles R. Schmidt's and the Python Spatial Analysis Laboratory's (PySAL) WKT writer
+####################
+### Contributors ###
+####################
+
+* [cuyahoga](https://github.com/cuyahoga) - Option to reverse inner ring geometry in Google Maps API extension
+* [Tom Nightingale (thegreat)](https://github.com/thegreat) - **Leaflet extension!**
+
###################
### Conventions ###
###################
-The conventions I've adopted in writing this library:
-
-* The Crockford-ian module pattern with a single global (namespace) variable
-* The most un-Crockford-ian use of new to instantiate new Objects (when this is required, the Object begins with a capital letter e.g. new Wkt())
-* The namespace is the only name beginning with a capital letter that doesn't need to and shouldn't be preceded by new
-* The namespace is the result of a function allowing for private members
-* Tricky operators (++ and --) and type-coercing operators (== and !=) are not used
-
The base library, wicket.js, contains the Wkt.Wkt base object. This object doesn't do anything on its own except read in WKT strings, allow the underlying geometry to be manipulated programmatically, and write WKT strings. By loading additional libraries, such as wicket-gmap3.js, users can transform between between WKT and the features of a given framework (e.g. google.maps.Polygon instances). The intent is to add support for new frameworks as additional Javascript files that alter the Wkt.Wkt prototype.
+**To extend Wicket**, nominally by writing bindings for a new mapping library, add a new file with a name like wicket-libname.src.js (and corresponding minified version wicket-libname.js) where "libname" is some reasonably short, well-known name for the mapping library.
+
##############
## Concepts ##
##############
diff --git a/wicket-gmap3.js b/wicket-gmap3.js
index ba14b83..136f7c8 100644
--- a/wicket-gmap3.js
+++ b/wicket-gmap3.js
@@ -1,3 +1,22 @@
+/**
+ * Copyright (C) 2012 K. Arthur Endsley (kaendsle@mtu.edu)
+ * Michigan Tech Research Institute (MTRI)
+ * 3600 Green Court, Suite 100, Ann Arbor, MI, 48105
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
google.maps.Marker.prototype.type="marker";google.maps.Polyline.prototype.type="polyline";google.maps.Polygon.prototype.type="polygon";google.maps.Rectangle.prototype.type="rectangle";google.maps.Circle.prototype.type="circle";
Wkt.Wkt.prototype.construct={point:function(config,component){var c=component||this.components;config=config||{};config.position=new google.maps.LatLng(c[0].y,c[0].x);return new google.maps.Marker(config)},multipoint:function(config){var i,c,arr;c=this.components;config=config||{};arr=[];for(i=0;i.
+ *
+ */
google.maps.Marker.prototype.type = 'marker';
google.maps.Polyline.prototype.type = 'polyline';
google.maps.Polygon.prototype.type = 'polygon';
diff --git a/wicket.js b/wicket.js
index 734c1d3..c1d4a51 100644
--- a/wicket.js
+++ b/wicket.js
@@ -1,3 +1,22 @@
+/**
+ * Copyright (C) 2012 K. Arthur Endsley (kaendsle@mtu.edu)
+ * Michigan Tech Research Institute (MTRI)
+ * 3600 Green Court, Suite 100, Ann Arbor, MI, 48105
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
var Wkt=function(){return{delimiter:" ",isArray:function(obj){return!!(obj&&obj.constructor==Array)},Wkt:function(initializer){var beginsWith,endsWith,trim;beginsWith=function(str,sub){return str.substring(0,sub.length)===sub};endsWith=function(str,sub){return str.substring(str.length-sub.length)===sub};trim=function(str,sub){sub=sub||" ";while(beginsWith(str,sub))str=str.substring(1);while(endsWith(str,sub))str=str.substring(0,str.length-1);return str};this.delimiter=Wkt.delimiter;this.regExes={typeStr:/^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,
spaces:/\s+|\+/,numeric:/-*\d+\.*\d+/,comma:/\s*,\s*/,parenComma:/\)\s*,\s*\(/,doubleParenComma:/\)\s*\)\s*,\s*\(\s*\(/,trimParens:/^\s*\(?(.*?)\)?\s*$/};this.isCollection=function(){switch(this.type.slice(0,5)){case "multi":return true;case "polyg":return true;default:return false}};this.components=undefined;this.fromObject=function(obj){var result=this.deconstruct.call(this,obj);this.components=result.components;this.isRectangle=result.isRectangle||false;this.type=result.type;return this};this.toObject=
function(config){return this.construct[this.type].call(this,config)};this.read=function(wkt){var matches;matches=this.regExes.typeStr.exec(wkt);if(matches){this.type=matches[1].toLowerCase();this.base=matches[2];if(this.ingest[this.type])this.components=this.ingest[this.type].apply(this,[this.base])}else{console.log("Invalid WKT string provided to read()");throw{name:"WKTError",message:"Invalid WKT string provided to read()"};}return this.components};this.write=function(components){var i,pieces,data;
diff --git a/wicket.src.js b/wicket.src.js
index 70baf99..95d724b 100644
--- a/wicket.src.js
+++ b/wicket.src.js
@@ -1,6 +1,22 @@
/*global console, document, window*/
/**
- * @author K. Arthur Endsley
+ * Copyright (C) 2012 K. Arthur Endsley (kaendsle@mtu.edu)
+ * Michigan Tech Research Institute (MTRI)
+ * 3600 Green Court, Suite 100, Ann Arbor, MI, 48105
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
*/
var Wkt = (function () { // Execute function immediately