update internal structure