unified interface in init functions