router hook implemented