several improvments