Just a heads up, the `errors` array will be cleared and refilled every time `valid?` is called.  I fixed an issue in OAuth with this, so you might want to look at that for an example.