Initial stab at ordered covering algorithm.

TODO: - Tests
      - Break up and clean up