http://pastebin.com/vh9yt3n6