Re: Java classes called "SimpleFoo": that's usually because `Foo` is an abstract class or interface, and `SimpleFoo` is the version you actually use most of the time, unless you absolutely have to implement a `MyReallyComplexFoo` for some specific purpose.
Ahh interesting. So it's Java convention/best practices being ported to other languages. Nothing wrong with using "simple" that if you explain it that way. I stand myself corrected.