initial commit

see http://jsfiddle.net/relipse/CaVsd/40/