add random init optimizition and others