http://pastebin.com/LkZ7Espc