private
don't need to import MatchResult to call its functions
why encode and decode?
more cleanup
still more