edited initialize