various improvment