Add gradual redrawing and change architecture of classes