initialization improved