starting algorithm