top level algo changes