initial commit, just a percent encode function