http://pastebin.com/98vbpsQ8