http://pastebin.com/18JsGf2M