http://pastebin.com/aKNjAgnG
