protocols for use with mrjob