why does this have to implement WritableComparable?