descriptor
descriptor parser
descriptor throws errors when malformed, handles array type