separate initialize