keyword algorithm