create algorithms