# Below is a list of people and organizations that have contributed
# to the project. Names should be added to the list like so:
#
#   Name/Organization <email address>

Google Inc.

Don Olmstead <don.j.olmstead@gmail.com>
Adam Singer <financeCoding@gmail.com>
Oliver Sand <oliver.sand@tentaclelabs.com>
