algorithm initial