two variants initialization