initial commit (most of this thanks to google extension docs and http://www.phpdeveloper.org/news/13870)