diff --git a/GSoC2010DataSeeder.wiki b/GSoC2010DataSeeder.wiki
index f7dee76..55f21c6 100644
--- a/GSoC2010DataSeeder.wiki
+++ b/GSoC2010DataSeeder.wiki
@@ -125,6 +125,54 @@
 
 This might prove flexible enough to accomplish most data seeding needs, but could perhaps be a bit too hard to configure, although configuring is a one time job, as configuration sheets will be reusable. Also, autodetecting relations might perhaps fail in case there are some "tricky" relations, not sure if this is the case. In case this proves to work successfully, changes in models will not require any changes in the data seeder at all.
 
+=== Proposed data providers ===
+
+  * _*StringProperty*_
+    * *FixedStringProvider* - returns a fixed string
+    * *RandomWordProvider* - returns a random word from a configurable list
+    * *RandomNameProvider* - returns a random name
+    * *RandomPhraseProvider* - returns a random phrase
+  * _*BooleanProperty*_
+    * *FixedBooleanProvider* - returns a fixed boolean
+    * *RandomBooleanProvider* - returns a random boolean with configurable probability
+  * _*IntegerProperty*_
+    * *FixedIntegerProvider* - returns a fixed integer
+    * *UniformDistributionIntegerProvider* - returns a random integer sampled from a discrete uniform distribution
+    * *NormalDistributionIntegerProvider* - returns a random integer sampled from a normal distribution
+  * _*FloatProperty*_
+    * *FixedFloatProvider* - returns a fixed float
+    * *UniformDistributionFloatProvider* - returns a random float sampled from a discrete uniform distribution
+    * *NormalDistributionFloatProvider* - returns a random float sampled from a normal distribution
+  * _*DateTimeProperty*_
+    * *FixedDateTimeProvider* - returns a fixed date and time
+    * *UniformDistributionDateTimeProvider* - returns a random date and time sampled from a discrete uniform distribution
+    * *NromalDistributionDateTimeProvider* - returns a random date and time sampled from a normal distribution
+  * _*DateProperty*_
+    * *FixedDateProvider* - returns a fixed date
+    * *UniformDistributionDateProvider* - returns a random date sampled from a discrete uniform distribution
+    * *NromalDistributionDateProvider* - returns a random date sampled from a normal distribution
+  * _*UserProperty*_
+    * *TODO:* How do we seed this???
+  * _*BlobProperty*_
+    * *TODO:* Maybe random document formats (.doc, .pdf, .odt) or simply random binary data
+  * _*TextProperty*_
+    * Anything supported by the *StringProperty*
+    * *FixedTextProvider* - returns a fixed text
+    * *RandomParagraphProvider* - returns a random paragraph
+    * *RandomPlainTextDocumentProvider* - returns a random document in plain text (i.e. multiple paragraphs).
+    * *RandomHtmlDocumentProvider* - returns a random document in HTML
+    * *RandomMarkdownDocumentProvider* - returns a random document in Markdown
+  * _*LinkProperty*_
+    * *FixedLinkProvider* - returns a fixed link
+    * *RandomLinkProvider* - returns a random link (? should random link be valid ?)
+  * _*EmailProperty*_
+    * *FixedEmailProvider* - returns a fixed e-mail address
+    * *RandomEmailProvider* - returns a random e-mail address
+  * _*PhoneNumberProperty*_
+    * *FixedPhoneNumberProvider* - returns a fixed phone number
+    * *RandomPhoneNumberProvider* - returns a random phone number
+
+
 === Python fixtures ===
 
 Python fixtures are used to easily set up and tear down a database for test purposes. The fixture module supports easy addition of static predefined data to the datastore and it's very well integrated with unit tests. The data seeder's main purpose however is to load arbitrary random data.
