i'm curious why the override of hash here? seems like just the Object#hash would be enough, given the uniqueness of (name+service_class)