isn't this discrete? it uses midrank