many improvments!