fix+improve many things