update + cleanup