more reasonable initialization