init generic'ified