added router implementations