Further cleanup to try a different algorithm semantics