http://pastebin.com/f2a0fc975