some improvments