The algorithm's components