dispatcher prototype