automatic intialization