http://pastebin.com/2G7qBPBv