add fill & clear functionality