!!!!!!!!!change many things to be adaptived