added automatic initialization