Add more generic initializer