http://pastebin.com/KJzQuA9R