start by moving the error subtype and coercion to the error class
pick up some of the other subtypes
move the other helper functions
move the request stuff to the class
move message and stack trace subtypes to their classes
move line down closer to constraints