algorithms added