add run function to router