get the algorithm
        |
        V
    implement
        |
        V
      test