http://codepad.org/p04W8Uz5