added err.text to allow variable messages on non-default errors