ensure that Validate() has been called for a type
rearrange
make the app type private, accessible only through NewApp; see if we like this
use buffer pointer instead