modified initialization