Ok, downside, it is written in Java (I'm sure I've ranted near you at one point or another about my hatred of Java, if not I will gladly do so if asked). Upside, it looks like it is a pretty decent program. Even good programmers with good ideas can pick and use bad languages sometimes. Oh well.
Check it out:
jMemorize