idk, some small changes in some places, idr