avoid unnecessary init/clear