It is more important for the interface to be simple than the implementation. Correctness - the design must be correct in all observable aspects. Incorrectness is simply not allowed. Consistency - the design must not be inconsistent. A design is allowed to be slightly less simple and less complete to avoid inconsistency.
Consistency is as important as correctness.
Completeness - the design must cover as many important situations as is practical. All reasonably expected cases must be covered. Simplicity is not allowed to overly reduce completeness. An installer for GTK that can handle rpm, deb, and tgz, and parses a simple text format install config file. Here's a few other projects that I've hacked together.