http://pastebin.com/ECXk5wHH