Do not create Controllers as a side effect to isValid.

Controllers should only be created on the event dispatcher thread.  Having it be created as a
side effect to isValid means it could end up being created on another thread.  There is no reason
to restrict isValid to only be called from the event dispatcher thread, so simply require that
Controllers has already been created before making a call.