various #to_h methods