Now using a constructor&prototype pattern instead of closure-module pattern; user can now set the transformation programmatically.