changed up the parser returns an array now... more flexible if formats change in the future
added some field classes that parse their own input