TODO better exception.