http://pastebin.com/3kqQCuij