When I was getting ready for my Extra test I wrote this program that help me pass
the test. This program learns your weaknesses and drill you on them. I don't know
of any one that has failed the test when they could pass this program.
The URL to it is: http://www.shecora.com/ham
which also has some links
to the Koch method CW trainers.
My program is free and open source. The CW trainers are also free.