improve intialization