diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e873a0d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,17 @@
+#Simple-Talk Article : Fluent HTML helpers for ASP.NET MVC
+
+This is the source code for the Simple-Talk.com article **Writing Custom HTML helpers for ASP.NET MVC**, published on October 24th, 2012.
+
+The article included in this repository is licensed under a Attribution-NonCommercial-ShareAlike 3.0 license, meaning that you are free to copy, distribute, transmit and adapt this work for non-commercial use, but that you must credit Ed Charbeneau & Simple-Talk.com as the original author and publisher of the piece, and provide a link to the original story.
+
+[http://www.simple-talk.com/dotnet/asp.net/writing-custom-html-helpers-for-asp.net-mvc/](http://www.simple-talk.com/dotnet/asp.net/writing-custom-html-helpers-for-asp.net-mvc/ "Writing Custom HTML Helpers for ASP.NET MVC")
+
+##Contributing
+
+Fork, update, send a pull request
+
+##Language
+
+If you choose to translate the article, first off, thanks! But please use a two-letter ISO 639-1 language code in the file name.
+
+e.g.: **Writing Custom HTML Helpers for ASP.NET MVC - en.md**
\ No newline at end of file
diff --git a/Simple-talk article/Writing custom HTML Helpers for ASP.NET MVC - en.md b/Simple-talk article/Writing custom HTML Helpers for ASP.NET MVC - en.md
new file mode 100644
index 0000000..5aa0ced
--- /dev/null
+++ b/Simple-talk article/Writing custom HTML Helpers for ASP.NET MVC - en.md
@@ -0,0 +1,498 @@
+#WRITING CUSTOM HTML HELPERS FOR ASP.NET MVC
+*Ed Charbeneau*
+
+As a web forms developer, I found the transition to MVC to be a bit of a shock at first. Without fully understanding the nature of MVC, I found the lack of a Toolbox filled with server controls to be confusing. However, once it became clear that the goal of MVC was to expose HTML markup and give developers full control over what is rendered to the browser, I quickly embraced the idea.
+
+##TRANSITIONING FROM WEB FORMS
+
+In MVC development, HTML helpers replace the server control, but the similarities aren’t exactly parallel. Whereas web forms and server controls were intended to bring the workflow of desktop forms to the web, MVC's HTML helpers simply provide a shortcut to writing out raw HTML elements that are frequently used.
+
+The HTML helper, in most cases, is a method that returns a string. When we call a helper in a View using the razor syntax **@Html**, we are accessing the Html property of the View, which is an instance of the HtmlHelper class.
+
+Writing extensions for the **HtmlHelper** class will allow us to create our own custom helpers to encapsulate complex HTML markup. Custom helpers also promote the use of reusable code and are unit testable. Custom helpers can be configured by passing values to the constructor, via fluent configuration, strongly typed parameters, or a combination of both, and ultimately return a string.
+
+##HOW TO BEGIN
+
+The first step in writing an HTML helper is finding code within our project that you intend on reusing. For the extent of this article I will be using an alert message as an example. The Alert is a UI element that displays a message which has a default, success, warning, or information style. The Alert element’s markup is simple in construction but gives us an adequate sample for the scope of this article.
+
+
+
+With our code targeted, we’ll examine the alert markup and see how we can break it down and construct reusable pieces of content. The alert is made up of a div container, a message, a close button and can have multiple styles applied to it. If we examine the markup, we can see that there are parts of the element that are static, and parts that can be broken down into options that can be set as parameters.
+
+
+
+
+
+*In addition to the HTML, the alert will require CSS and JavaScript in order to function. The CSS and JavaScript are beyond the scope of this article but are included in the final example at the end of this article.*
+
+##WRITING A SPECIFICATION
+
+Personally, once I have my HTML defined, I prefer to start writing a specification before I do anything else. Writing a specification isn’t a necessary step for creating a custom HTML helper, but it gives me a guide to how the HTML helper will function and what the desired syntax will be. A spec will also promote the use of semantic code, which improves discoverability for others that may be using the helper.
+
+Using a text file, I spec out how the helper will function and, since I will be unit testing the code, I’ll save the spec to my test project. There are several parameters that will be required to configure the Alert element: the text to be displayed, the style of the alert, and a close button that can be toggled. I’ll also be giving the Alert a default configuration that will only require that the text parameter be set. In addition to the elements configuration, custom attributes will be configurable through the **htmlAttributes** parameter as an anonymous object. Each configuration of the **Alert** helper is written out in the spec so it can be followed during implementation.
+
+ //Given the Alert HTML Helper method
+
+ //Then Render the HTML
+
+ //Default Alert
+ @Html.Alert(text:"message") [.HideCloseButton()]
+
+
+
+##UNIT TESTING
+
+ASP.NET MVC is highly regarded for its ability to be unit tested, and custom HTML helpers can be thoroughly tested too. With the right setup, unit testing your custom helper isn’t difficult:
+
+First, we need to create an instance of the **HtmlHelper** class so our extension method can be tested. Next, the custom method is called, and finally we can check the results against our expectations.
+
+So, before we can write our test, we will need to create an instance of the **HtmlHelper** class. However, the **HtmlHelper** class has no default constructor, so a little work must be done up front to get an instance. To create an instance of **HtmlHelper**, we must specify a context and view data container - for the scope of this article, fakes will do just fine. Since each test will require an instance of **HtmlHelper**, I’ve created an **HtmlHelperFactory** class to create the instances.
+
+ //Creates an HtmlHelper for unit testing
+ class HtmlHelperFactory
+ {
+ ///
+ /// Create a new HtmlHelper with a fake context and container
+ ///
+ /// HtmlHelper
+ public static HtmlHelper Create()
+ {
+ var vc = new ViewContext();
+ vc.HttpContext = new FakeHttpContext();
+ var html = new HtmlHelper(vc, new FakeViewDataContainer());
+ return html;
+ }
+
+ private class FakeHttpContext : HttpContextBase
+ {
+ private readonly Dictionary