Added tests for all the current required functionality.  Put things in packages because I was having strange compilation issues, not sure why this fixed it.  Broke the Item rule, technically, but only changed whitespace and the package.