refactor before adding more complex (join, cogroup, rank, etc) operators