This method is born out of mathematical group theory. In it we first nominate top, front and left cube face colours and regard their opposite face colours as part of the same group. The solution is in stages and algorithms (move sequences) are provided for some stages.

In what follows TB is our reference to top and bottom faces, FK to front and back faces and LR to left and right faces. Clockwise turns to Front, Back, Right, Left, Top and Bottom faces use capital letters F, K, R, L, T and B and anti clockwise turns to those faces use non capitals f, k, r, l, t and b.
Stage 1: Prepare edge blocks : This stage seeks to have all top or bottom edge block colours either on a TB face or on the mid layer of an LR face and all front and back edge block colours on a FK face or on the top/bottom layers of the LR face.
One 90 degree turn of an LR face will correct 4 non complying edge blocks, so the objective is to move 4 such edge blocks to one LR face without using any 90 degree turns of an LR face and then to turn that LR face through 90 degrees so as to have those four non compliant blocks comply.

If you have a situation where only two blocks do not comply position just one of them on an LR face and rotate it 90 degrees. That move will make that one block right but three others wrong. Replace the righted block on that face with the other non complying block and turn the LR face again 90 degrees to correct the now four wrong blocks.
As an example the cube shown has four blocks in need of correction. Two are opposite one another on the top face. If we turn the front face anti clockwise and the back face clockwise these two blocks are opposite one another on the vertical edges of the left face.

In doing the above we moved the white blue edge block to the back bottom position and therefore by turning the bottom face clockwise we can position it in the left bottom position. Now we turn the top face 180 degrees to place the yellow orange block at the left top position. We now have the situation illustrated and can correct all four blocks by turning the left face 90 degrees.

Stage 2: Position all TB edge blocks on TB faces: Doing this we must avoid 90 degree LR face turns.
First establish three TB edge faces on both of the TB faces. Maintain these triples whilst positioning the two other TB edge colours facing away from and opposite one another on the LR faces as shownas shown. Now do a 90 degree turn of the front face. on which the other 2 TB blocks are situated.
Important note: At stages 3, 4 and 5 below 90 degree turns are only allowed on TB faces except where using a stage algorithm

Stage 3: All TB face corner blocks to show a TB colour: Two algorithms are provided. To move TB corner colours facing front right bottom and facing left front top do algorithm r, B, L2, b, R. To move TB corner colours facing front left bottom and right front top do algorithm L, b, R2, B, l. If left with three corners to correct, locate two blocks as required but with one not facing as required. Now do the appropriate algorithm. It will correct only one, leaving two blocks to correct as above. stage.
Stage 4: Match TB corner colours with centre face colours: You can easily move pairs of corner blocks between top and bottom using 180 degree turns. If you are left with unpaired blocks top and bottom position the bottom block so that when you do a 180 degree turn of the face on which the lone top corner colour block resides it makes for a pair on the bottom face. Now you can manipulate that pair to the top face. The illustration below shows TB faces at the end of this stage.

Stage 5: Temporarily finalize all corner blocks: Two algorithms are provided. The first is r, F, r, K2, R, f, R. The second is R2, F2, R2.
Look at each of the FB and LR faces. You are looking to see if there are any corner block colour matches either on the top layer or on the bottom layer of those faces. The example shows 5 matches and e) below applies
a) if no pairs match do the second algorithm.
b) if one pair match position that pair top front and do the first algorithm.
c) if two pairs match (one top layer, one bottom layer) put top pair at rear. Do the first algorithm and then proceed as for b) above.
d) if all pairs match one layer and no pairs match on the other, turn the cube so that the matching layer is down and do the first algorithm. Now check the faces again and proceed as for a) or b) above.
e) If all pairs match one layer and one pair matches on the other layer. Put the one pair rear top and do the first algorithm then proceed as a).
You should now be able to turn faces so that all the corner blocks are in their final positions.
Important note: At stages 6, 7 and 8 avoid any 90 degree turns except when part of an algorithm

Stage 6: All FK and LR edge blocks to display their group colour: One algorithm is provided. b, L2, R2, T will correct 4 bad edges at front top, back top, left bottom and right bottom. This algorithm will upset the corner situation achieved at stage 5 but they will be made correct again at stage 7.
Look for LR colours on a FK face and FK colours on a LR face. Correct four of them by first appropriately positioning them using 180 degree turns followed by the algorithm. When or if only two need correcting put them on the top layer and perform the algorithm. You now have four blocks in need of correction so proceed as for them. At the end of this stage all TB, FK and LR faces will have blocks that show their group colour.
Stage 7: All corners in final positions: Use 180 turns to finalize all corner blocks.

Stage 8: Finalize edges to complete the cube: At this stage any face can be identified as the front face, etc.
Two algorithms are provided. The first (F2, R2) x 3 (180 degree turns of front and right faces performed 3 times) will swap the positions of the front top and front bottom blocks as well as the positions of the right top and right bottom blocks. The second F2, L2, R2, K2, R2, L2 will swap the front top with the front bottom but also the back top with the back bottom. Note: It may be necessary to do 180 degree or 90 degree turn(s) before doing an algorithm so as to suitably position blocks for the algorithm. If you do this you must reverse the order and direction of rotation of those turns as soon as you complete the algorithm.
If at some stage there are just 3 blocks to correct use the algorithm to swap a pair of them and correct one block whilst also swapping another pair that are correct. Now we have four blocks to correct and one algorithm should correct these if you do the appropriate preparatory move undoing it after performing the algorithm.
In the example shown it is best to first tackle the blocks that are doubly wrong. I would swap the green and blue faces along with another pair that need swapping. By turning the top face through 90 degrees and regarding it as the right face with the blue as the front face we can do the first algorithm and finalise one pair. Don’t forget to undo the 90 degree turn. Now we have four pair of blocks that want simple swaps. Use the algorithms as required doing and then undoing any preparatory turns required to enable the algorithms to work.