initialization improvment