prevent init being used multiple times