updated most of the shit