DDF-465: Cleaned up controller implementations.
Moved duplicate methods to abstract class, updated exceptions to throw illegalargument instead of nullpointer for clarity.