http://pastebin.com/Y6LJhAZ5