further optimization, made transforms better with proper default and a method to ignore rules