NewPing Library: HC-SR04, SRF05, SRF06, DYP-ME007, Parallax PING))) - v1.7

I've successfully created an interrupt-driven ping function and added it to my development NewPing. I'm probably going to add a few different interrupt types to satisfy different needs. This first one uses the timer1 interrupt. It works fine, but I'm not overly happy with one aspect and I'm hoping someone with experience has some insight.

In the sketch, it's currently being called like this:

void setup() {
  sonar.ping_timer1(); // This calls the ping
}

// Timer1 interrupt (I'm using prescale at 64 with the interrupt at 7 counts, in other words, every 28 microseconds this function is called).
ISR(TIMER1_OVF_vect) {
  if (sonar.ping_check()) {  // Check to see if we got a ping echo.
    Serial.print("Ping: ");
    Serial.print(sonar.convert_cm(sonar.ping_result));  // Print the result
    Serial.println("cm");
  }
}

Again, it works great. But, what I'd really like to do is clean it up a bit for the end-user. Instead, I'd like it to look like the following:

void setup() {
  sonar.ping_timer1(echoCheck); // This calls the ping and sets the interrupt function to "echoCheck".
}

void echoCheck() {
  if (sonar.ping_check()) {  // Check to see if we got a ping echo.
    Serial.print("Ping: ");
    Serial.print(sonar.convert_cm(sonar.ping_result));  // Print the result
    Serial.println("cm");
  }
}

Functionally, identical, just a little easier to understand for the end user. I understand the basic concept of adding the ISR(TIMER1_OVF_vect) in the library and setting it, but I just can't seem to get it to work without a compiler error. So, I went out looking for someone else who's done something similar and found the TimerOne library. The library is fairly simple so it's an easy read. Specifically, I'm interested in how he does the ISR(TIMER1_OVF_vect). I've tried to duplicate it, but it just won't compile. I could give my errors, but I've tried so many different ways that I've had maybe a half dozen different errors. I think I've nailed down where my problem is to here:

TimerOne Timer1;    // preinstatiate

ISR(TIMER1_OVF_vect)          // interrupt service routine that wraps a user defined function supplied by attachInterrupt
{
   Timer1.isrCallback(); 
}

Anyone know what this "preinstatiate" is? I would think I could in the case of NewPing do the following:

ISR(TIMER1_OVF_vect)          // interrupt service routine that wraps a user defined function supplied by attachInterrupt
{
   NewPing.isrCallback(); 
}

But, no. Anyone have any tips or could point me in the right direction on how I should implement having a function call set a function and wrap it insde an interrupt service routine?

Tim