implemented redrawing (UNTESTED)