Started re-adding validaiton rules, restructured a little. Adding some
structure to tests as specified in spec to make implementaiton a bit
easier.