http://pastebin.com/ZQghiaZ8