some update + untabified