added much richer init structure (from joshrounsville)