http://pastebin.com/BV33vSK2