if all struct fields are optional, derive default builder macros? parse exceptions more fully cache the session tokens across multiple instantiations