Added Router class that glues all the pieces together