added more rules and cases to normalizer, also added a test spec
finished writing unit tests, added some code to support weird casing