some algorithm models