Partial rewrite and improvements of Warp object